検索
ホームページバックエンド開発Python チュートリアルPythonのOSモジュールの使い方とサンプル
PythonのOSモジュールの使い方とサンプルApr 22, 2023 pm 10:19 PM
pythonmoduleos

Python の os モジュールは、オペレーティング システムとの対話に使用される標準ライブラリの 1 つで、ファイルやディレクトリを操作するための便利な関数や変数が多数提供されています。一般的な OS モジュール関数の使用法を次に示します:

1. 現在の作業ディレクトリを取得します:

import os
cwd = os.getcwd()
print(cwd)

2. 現在の作業ディレクトリを切り替えます:

import os
os.chdir('/path/to/new/directory')

3.ディレクトリを一覧表示します:

import os
files = os.listdir('/path/to/directory')
print(files)

4. 指定されたパスがディレクトリであるかどうかを確認します:

import os
path = '/path/to/directory'
if os.path.isdir(path):
    print("It's a directory")
else:
    print("It's not a directory")

5. 指定されたパスがファイルであるかどうかを確認します:

import os
path = '/path/to/file'
if os.path.isfile(path):
    print("It's a file")
else:
    print("It's not a file")

6. ファイルのサイズをバイト単位で取得します:

import os
path = '/path/to/file'
size = os.path.getsize(path)
print(size)

7. 指定されたパスが存在するかどうかを確認します:

import os
path = '/path/to/file_or_directory'
if os.path.exists(path):
    print("It exists")
else:
    print("It doesn't exist")

8. 新しいディレクトリを作成します:

import os
path = '/path/to/new/directory'
os.mkdir(path)

9. 新しいディレクトリを再帰的に作成します (ディレクトリが存在しない場合):

import os
path = '/path/to/new/directory'
os.makedirs(path, exist_ok=True)

10. ファイルまたは空のディレクトリを削除します:

import os
path = '/path/to/file_or_directory'
os.remove(path)

11. ディレクトリとその内容を再帰的に削除します:

import os
path = '/path/to/directory'
os.system('rm -rf ' + path)

その他の便利な使い方:

12.os.path.splitext() メソッドは、パスをファイル名と拡張子の 2 つの部分に分割します。ファイル名の最後の「.」を区切り文字として使用して、ファイル名と拡張子を区切ります。たとえば、ファイル パスが「/path/to/file.txt」の場合、os.path.splitext() メソッドはタプル (「/path/to/file」、「.txt」) を返します。

ファイル名に「.」が含まれていない場合、返される拡張子は空の文字列であることに注意してください。ファイル名が「.」で始まる場合、拡張子のないファイルとみなされ、os.path.splitext() メソッドは (ファイル パス, '') を返します。

次は例です:

import os
path = '/path/to/file.txt'
file_name, ext = os.path.splitext(path)
print('文件名为:', file_name)
print('扩展名为:', ext)

出力結果は次のとおりです:

ファイル名は次のとおりです: /path/to/file
拡張子は次のとおりです。 : .txt

13. ファイル権限の設定:

import os
os.chmod('/path/to/file', 0o777) # 设置读、写、执行权限

os.chmod() メソッドを使用して、ファイルまたはディレクトリのアクセス権限を変更できます。ファイル パスと新しいアクセス許可モードの 2 つのパラメータを受け入れます。許可モードは 8 進数で表すことができ、各ビットは異なる許可を表します。

権限モードの例をいくつか示します:

  • 0o400: 読み取り専用権限

  • 0o200: 書き込み権限

  • 0o100: 実行権限

  • 0o700: すべての権限

14. CPU の数を取得します。

import os
cpu_count = os.cpu_count()
print('CPU数量为:', cpu_count)

os.cpu_count() によって返される CPU の数は物理 CPU コアの数であり、ハイパースレッディング テクノロジの仮想コアは含まれないことに注意してください。ハイパー スレッディング テクノロジを備えたシステムでは、各物理 CPU コアが 2 つの仮想コアに分割されるため、os.cpu_count() メソッドは実際の CPU コア数よりも大きい数値を返す場合があります。

さらに、os.cpu_count() メソッドは、オペレーティング システムごとに実装が異なる場合があります。一部のオペレーティング システムでは、物理 CPU コアの数ではなく、論理 CPU コアの数のみが返される場合があります。したがって、この方法を使用する場合、詳細については関連ドキュメントを参照することをお勧めします。

15. 新しいプロセスを開始します:

import os
os.system('notepad.exe')

os.system() メソッドは、オペレーティング システム上でコマンドを実行し、コマンドの終了ステータス コードを返すことができます。そのパラメータは文字列タイプのコマンドであり、任意の有効なシステム コマンドを使用できます。

次の例は、os.system() メソッドを使用して簡単なコマンドを実行する方法を示しています:

import os
os.system('echo "Hello, World!"')

上記のコードは Hello, World! 文字列を出力し、コマンドの終了ステータス コード (通常は成功の場合は 0)。

os.system() メソッドは、コマンドの実行が完了するまで現在のプロセスをブロックすることに注意してください。現在のプロセスをブロックせずにコマンドを実行したい場合は、subprocess.Popen() など、subprocess モジュール内の他のメソッドの使用を検討できます。

次の別の例は、os.system() メソッドを使用して、wget を使用して Linux システムにファイルをダウンロードするなど、複雑なコマンドを実行する方法を示しています。上記のコードは、url パラメーターで指定されたファイルを、output_dir パラメーターで指定されたディレクトリにダウンロードし、コマンドの終了ステータス コードを返します。

16.os.environ: これは、現在の環境変数を含む辞書です。 os.environ[key] を使用して、特定の環境変数の値を取得できます。

17.os.exec*(): これらのメソッドを使用すると、Python プログラムは現在のプロセスで他のプログラムを実行し、現在のプロセスを置き換えることができます。たとえば、os.execv() メソッドは、指定された引数リストを使用してプログラムを実行し、現在のプロセスを置き換えることができます。

18.os.fork(): このメソッドは、プログラムを並列実行するために Unix または Linux オペレーティング システム上に子プロセスを作成できます。子プロセスは、コード、データ、スタックなどを含む親プロセスのすべてのメモリ内容をコピーするため、プログラムは親プロセスに基づいて実行を続行できます。

19.os.kill(): このメソッドは、指定されたプロセスにシグナルを送信するために使用されます。 os.kill(pid, signal) メソッドを使用すると、指定したシグナルを指定したプロセスに送信できます。一般的に使用される信号には、SIGINT (割り込み信号)、SIGTERM (終了信号)、SIGKILL (強制終了信号) などがあります。

20.os.pipe(): このメソッドは、プロセス間の通信用のパイプを作成できます。 os.pipe() メソッドは 2 つのファイル記述子を返します。1 つはパイプ データの読み取り用で、もう 1 つはパイプ データの書き込み用です。

21.os.wait(): このメソッドは、子プロセスの終了を待ってから、子プロセスのステータス コードを返すことができます。 os.waitpid(pid, options) メソッドを使用すると、指定したプロセスが終了するのを待機し、プロセスのステータス コードを返すことができます。

22.os模块可以用来操作文件路径。例如,os.path.join(path, *paths)可以将多个路径拼接成一个完整路径,os.path.abspath(path)可以将相对路径转换为绝对路径,os.path.split(path)可以将路径分割成目录和文件名。

23.遍历目录树

import os
def list_files(path):
    for root, dirs, files inos.walk(path):
        for file in files:
            print(os.path.join(root, file))
list_files('.')

这段代码可以遍历当前工作目录及其子目录下的所有文件,并打印出它们的完整路径。

os.walk()是os模块中一个非常有用的函数,用于遍历指定目录及其子目录下的所有文件和目录。它返回一个三元组(root, dirs, files),其中root是当前目录的路径,dirs是当前目录下的子目录列表,files是当前目录下的文件列表。下面是一个os.walk()的详细解释和示例:

for root, dirs, files in os.walk(top, topdown=True, onerror=None, followlinks=False):
    # Do something with root, dirs, and files

top是指定的目录路径,可以是相对路径或绝对路径。

  • topdown是一个布尔值,表示遍历时是否先遍历当前目录,再遍历子目录。如果为True(默认值),则先遍历当前目录,再遍历子目录;如果为False,则先遍历子目录,再遍历当前目录。

  • onerror是一个可选的错误处理函数,如果在遍历过程中出现错误,则会调用这个函数。

  • followlinks是一个布尔值,表示是否跟随符号链接。如果为True,则会跟随符号链接遍历目录;如果为False(默认值),则会忽略符号链接。

在遍历过程中,os.walk()会依次遍历指定目录及其子目录下的所有文件和目录,并返回当前目录的路径、子目录列表和文件列表。可以通过遍历返回的三元组来处理目录和文件。例如,可以使用下面的代码列出指定目录下的所有文件和子目录:

import os
 
def list_files_and_dirs(path):
    for root, dirs, files in os.walk(path):
        print(f'Directory: {root}')
        for file in files:
            print(f'  File: {os.path.join(root, file)}')
        for dir in dirs:
            print(f'  Subdirectory: {os.path.join(root, dir)}')
 
list_files_and_dirs('.')

这段代码会遍历当前工作目录及其子目录下的所有文件和目录,并输出相应的信息。

需要注意的是,os.walk()只会遍历当前目录及其子目录下的文件和目录,不会遍历符号链接所指向的文件或目录。如果需要遍历符号链接所指向的文件或目录,需要设置followlinks=True。

以上がPythonのOSモジュールの使い方とサンプルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
详细讲解Python之Seaborn(数据可视化)详细讲解Python之Seaborn(数据可视化)Apr 21, 2022 pm 06:08 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

详细了解Python进程池与进程锁详细了解Python进程池与进程锁May 10, 2022 pm 06:11 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

Python自动化实践之筛选简历Python自动化实践之筛选简历Jun 07, 2022 pm 06:59 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

归纳总结Python标准库归纳总结Python标准库May 03, 2022 am 09:00 AM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于标准库总结的相关问题,下面一起来看一下,希望对大家有帮助。

Python数据类型详解之字符串、数字Python数据类型详解之字符串、数字Apr 27, 2022 pm 07:27 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

分享10款高效的VSCode插件,总有一款能够惊艳到你!!分享10款高效的VSCode插件,总有一款能够惊艳到你!!Mar 09, 2021 am 10:15 AM

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

详细介绍python的numpy模块详细介绍python的numpy模块May 19, 2022 am 11:43 AM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

python中文是什么意思python中文是什么意思Jun 24, 2019 pm 02:22 PM

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)