logo

Python の OS モジュールと例

PythonのOSモジュール オペレーティング システムと対話するための機能を提供します。 OS は Python の標準ユーティリティ モジュールに含まれます。このモジュールは、オペレーティング システムに依存する機能を使用するポータブルな方法を提供します。

*os* と *os.path* モジュールには、ファイル システムと対話するための多くの関数が含まれています。

Python-OS-モジュール関数

ここでは、Python os モジュールのいくつかの重要な機能について説明します。



  • 現在の作業ディレクトリの処理
  • ディレクトリの作成
  • Python を使用してファイルとディレクトリをリストする
  • Pythonを使用したディレクトリまたはファイルの削除

現在の作業ディレクトリの処理

考慮する 現在の作業ディレクトリ(CWD) Python が動作するフォルダーとして。ファイルが名前だけで呼び出される場合、Python はそのファイルが CWD で開始されると想定します。これは、ファイルが Python の CWD にある場合にのみ名前のみの参照が成功することを意味します。

注記: Python スクリプトが実行されているフォルダーは、現在のディレクトリと呼ばれます。これは、Python スクリプトが配置されているパスではありません。

現在の作業ディレクトリの取得

現在の作業ディレクトリの場所を取得するには os.getcwd() 使用されている。

例: このコードでは、 ' os'> Python スクリプトの現在の作業ディレクトリ (CWD) を取得して出力するモジュール。を使用して CWD を取得します。 ' os.getcwd()'> そしてそれをコンソールに出力します。

パイソン
import os cwd = os.getcwd() print('Current working directory:', cwd)>

出力:

Current working directory: /home/nikhil/Desktop/gfg>

現在の作業ディレクトリの変更

現在の作業ディレクトリを変更するには(CWD) os.chdir() という方法が使われます。このメソッドは、CWD を指定されたパスに変更します。新しいディレクトリ パスとして引数を 1 つだけ取ります。

注記: 現在の作業ディレクトリは、Python スクリプトが動作しているフォルダーです。

例: このコードは、現在の作業ディレクトリ (CWD) を 2 回チェックして表示します。つまり、ディレクトリを 1 つ上のレベルに変更する前後です。 os.chdir('../')> 。 Python で現在の作業ディレクトリを操作する方法の簡単な例を示します。

パイソン
import os def current_path(): print('Current working directory before') print(os.getcwd()) print() current_path() os.chdir('../') current_path()>

出力:

Current working directory before C:UsersNikhil AggarwalDesktopgfg Current working directory after C:UsersNikhil AggarwalDesktop>

ディレクトリの作成

OS モジュールでディレクトリを作成するために使用できるさまざまな方法があります。これらは -

  • os.mkdir()
  • os.makedirs()

os.mkdir() の使用

を使用することで os.mkdir() Python のメソッドは、指定された数値モードで path という名前のディレクトリを作成するために使用されます。 作成するディレクトリがすでに存在する場合、このメソッドは FileExistsError を発生させます。

例: このコードは 2 つのディレクトリを作成します。 techcodeview.com 以内 D:/Pycharm プロジェクト/ ディレクトリと オタク 以内 D:/Pycharm プロジェクト ディレクトリ。

  • 最初のディレクトリは、os.mkdir()>モードを指定せずにメソッドを実行します。
  • 2 番目のディレクトリは同じ方法を使用して作成されますが、特定のモードが異なります。 ( 0o666> ) が提供され、読み取りおよび書き込み権限が付与されます。
  • 次に、コードはディレクトリが作成されたことを示すメッセージを出力します。
パイソン
import os directory = 'techcodeview.com' parent_dir = 'D:/Pycharm projects/' path = os.path.join(parent_dir, directory) os.mkdir(path) print('Directory '% s' created' % directory) directory = 'Geeks' parent_dir = 'D:/Pycharm projects' mode = 0o666 path = os.path.join(parent_dir, directory) os.mkdir(path, mode) print('Directory '% s' created' % directory)>

出力:

Directory 'techcodeview.com' created Directory 'Geeks' created>

os.makedirs() の使用

os.makedirs() Python のメソッドは、ディレクトリを再帰的に作成するために使用されます。 つまり、リーフ ディレクトリの作成中に中間レベルのディレクトリが不足している場合、os.makedirs() メソッドがそれらをすべて作成します。

例: このコードは 2 つのディレクトリを作成します。 ニキル そして c 、異なる親ディレクトリ内にあります。それは、os.makedirs>親ディレクトリが存在しない場合に親ディレクトリが作成されるようにする機能。

また、次の権限も設定します。 c ディレクトリ。コードは、これらのディレクトリの作成を確認するメッセージを出力します。

パイソン
import os directory = 'Nikhil' parent_dir = 'D:/Pycharm projects/GeeksForGeeks/Authors' path = os.path.join(parent_dir, directory) os.makedirs(path) print('Directory '% s' created' % directory) directory = 'c' parent_dir = 'D:/Pycharm projects/techcodeview.com/a/b' mode = 0o666 path = os.path.join(parent_dir, directory) os.makedirs(path, mode) print('Directory '% s' created' % directory)>

出力:

Directory 'Nikhil' created Directory 'c' created>

Python を使用してファイルとディレクトリをリストする

がある os.listdir() Python のメソッドは、指定されたディレクトリ内のすべてのファイルとディレクトリのリストを取得するために使用されます。ディレクトリを指定しない場合は、現在の作業ディレクトリ内のファイルとディレクトリのリストが返されます。

例: このコードは、ルート ディレクトリ内のすべてのファイルとディレクトリをリストします。 (/) 。それは、os.listdir>関数を使用して、指定されたパス内のファイルとディレクトリのリストを取得し、結果を出力します。

パイソン
import os path = '/' dir_list = os.listdir(path) print('Files and directories in '', path, '' :') print(dir_list)>

出力:

Files and directories in ' / ' : ['sys', 'run', 'tmp', 'boot', 'mnt', 'dev', 'proc', 'var', 'bin', 'lib64', 'usr',  'lib', 'srv', 'home', 'etc', 'opt', 'sbin', 'media']>

Pythonを使用したディレクトリまたはファイルの削除

OS モジュールは、Python でディレクトリとファイルを削除するためのさまざまな方法を提供します。これらは -

  • os.remove() の使用
  • os.rmdir() の使用

os.remove() メソッドの使用

os.remove() Python のメソッドは、ファイル パスを削除または削除するために使用されます。このメソッドではディレクトリを削除したり削除したりすることはできません。指定されたパスがディレクトリの場合、メソッドによって OSError が発生します。

例: フォルダー内に次のファイルが含まれているとします。

このコードは、指定された場所 D:/Pycharm Projects/techcodeview.com/Authors/Nikhil/ から file1.txt という名前のファイルを削除します。それは、os.remove>指定されたパスにあるファイルを削除する関数。

パイソン
import os file = 'file1.txt' location = 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil/' path = os.path.join(location, file) os.remove(path)>

出力:


os.rmdir() の使用

os.rmdir() Python のメソッドは、空のディレクトリを削除または削除するために使用されます。指定されたパスが空のディレクトリではない場合、OSError が発生します。

例: ディレクトリが次のようになっているとします。

このコードは、という名前のディレクトリを削除しようとします。 オタク にあります D:/Pycharm プロジェクト/

それは、os.rmdir>ディレクトリを削除する機能です。ディレクトリが空の場合は削除されます。ファイルまたはサブディレクトリが含まれている場合、エラーが発生する可能性があります。

パイソン
import os directory = 'Geeks' parent = 'D:/Pycharm projects/' path = os.path.join(parent, directory) os.rmdir(path)>

出力:

よく使われる機能

os.name関数の使用

この関数は、インポートされたオペレーティング システムに依存するモジュールの名前を与えます。 。現在、「posix」、「nt」、「os2」、「ce」、「java」、「riscos」という名前が登録されています。

パイソン
import os print(os.name)>

出力:

posix>

注記: ここでコードを実行すると、「posix」などのインタープリターごとに異なる出力が得られる場合があります。

os.error関数の使用

このモジュールのすべての関数は、 OSエラー 無効またはアクセスできないファイル名とパス、または正しい型を持つその他の引数がオペレーティング システムによって受け入れられない場合。 os.error は、組み込み OSError 例外のエイリアスです。

このコードは、という名前のファイルの内容を読み取ります。 「GFG.txt」 。それは、 ' 試してみてください…ただし ' 潜在的なエラー、特に ‘ IOエラー ' これは、ファイルの読み取りに問題がある場合に発生する可能性があります。

エラーが発生すると、次のようなメッセージが表示されます。 GFG.txt の読み取りに問題があります。

パイソン
import os try: filename = 'GFG.txt' f = open(filename, 'rU') text = f.read() f.close() except IOError: print('Problem reading: ' + filename)>

出力:

Problem reading: GFG.txt>

os.popen() 関数の使用

このメソッドは、コマンドとの間のパイプを開きます。戻り値は、モードが 「r」または「w」
構文:

 os.popen(command[, mode[, bufsize]])>

パラメータ mode と bufsize は必須パラメータではありません。指定しない場合は、デフォルトの「r」が mode として使用されます。

このコードは、という名前のファイルを開きます 「GFG.txt」 書き込みモードでは、書き込みます こんにちは そして、その内容を読み取って出力します。の用法 os.popen> 推奨されず、これらのタスクには標準のファイル操作が使用されます。

パイソン
import os fd = 'GFG.txt' file = open(fd, 'w') file.write('Hello') file.close() file = open(fd, 'r') text = file.read() print(text) file = os.popen(fd, 'w') file.write('Hello')>

出力:

Hello>

注記: Popen() の出力は表示されません。ファイルには直接変更が加えられます。

os.close() 関数の使用

ファイル記述子 fd を閉じます。 open() を使用して開かれたファイルは、close() でのみ閉じることができます。ただし、os.popen() を通じて開かれたファイルは、close() または os.close() 。 open() で開いたファイルを os.close() を使用して閉じようとすると、Python は TypeError をスローします。

パイソン
import os fd = 'GFG.txt' file = open(fd, 'r') text = file.read() print(text) os.close(file)>

出力:

Traceback (most recent call last):  File 'C:UsersGFGDesktopGeeksForGeeksOSFile.py', line 6, in   os.close(file) TypeError: an integer is required (got type _io.TextIOWrapper)>

注記: 存在しないファイルまたは許可権限が原因で、同じエラーがスローされない場合があります。

os.rename() 関数の使用

ファイル old.txt は、関数を使用して new.txt に名前変更できます。 os.rename() 。ファイルの名前が変更されるのは、ファイルが存在し、ユーザーがファイルを変更するための十分な権限を持っている場合のみです。

パイソン
import os fd = 'GFG.txt' os.rename(fd,'New.txt') os.rename(fd,'New.txt')>

出力:

Traceback (most recent call last):  File 'C:UsersGFGDesktopModuleOSGeeksForGeeksOSFile.py', line 3, in   os.rename(fd,'New.txt') FileNotFoundError: [WinError 2] The system cannot find the file specified: 'GFG.txt' ->'新しい.txt'>>

ファイル名 GFG.txt が存在するため、初めて os.rename() が使用されると、ファイルの名前が変更されます。

関数 os.rename() を 2 回目に呼び出すと、ファイル New.txt が存在し、GFG.txt が存在しないため、Python は FileNotFoundError をスローします。

os.remove() 関数の使用

Os モジュールを使用すると、システム内のファイルを削除できます。 os.remove() 方法。ファイルを削除するには、ファイルの名前をパラメータとして渡す必要があります。

パイソン
import os #importing os module. os.remove('file_name.txt') #removing the file.>

OS モジュールは、私たちとオペレーティング システムの間に抽象化レイヤーを提供します。

OSを操作しているとき モジュールはオペレーティング システムに応じて常に絶対パスを指定します。コードはどの OS でも実行できますが、パスを正確に変更する必要があります。存在しないファイルを削除しようとすると、次のメッセージが表示されます。 ファイルが見つかりませんエラー

os.path.exists() 関数の使用

このメソッドは、ファイル名をパラメータとして渡すことによって、ファイルが存在するかどうかを確認します。 OS モジュールには PATH という名前のサブモジュールがあり、これを使用するとさらに多くの機能を実行できます。

パイソン
import os #importing os module result = os.path.exists('file_name') #giving the name of the file as a parameter. print(result)>

出力:

False>

上記のコードと同様、ファイルが存在しない場合、出力は False になります。ファイルが存在する場合、出力は True になります。

os.path.getsize() 関数の使用

os.path.getsize( ) 関数を使用すると、Python はファイルのサイズをバイト単位で返します。このメソッドを使用するには、ファイルの名前をパラメータとして渡す必要があります。

パイソン
import os #importing os module size = os.path.getsize('filename') print('Size of the file is', size,' bytes.')>

出力:

Javaのjvm
Size of the file is 192 bytes.>