Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのディレクトリ操作入門!osモジュールで作成・移動・削除をマスターしよう

はじめに

すべてのファイルは何らかのディレクトリの中に格納されていますが、Pythonはこうしたディレクトリ操作も問題なく扱うことができます。標準ライブラリのosモジュールには、ディレクトリの作成・移動・削除などを行うための便利なメソッドが多数用意されています。

この記事では、ディレクトリ操作に欠かせない4つの基本メソッド「mkdir()」「chdir()」「getcwd()」「rmdir()」について、構文と具体的なコード例とともにわかりやすく解説します。

mkdir()メソッド ― ディレクトリを作成する

osモジュールのmkdir()メソッドを使うと、カレントディレクトリ内に新しいディレクトリを作成できます。引数には、作成したいディレクトリの名前を指定します。

構文

os.mkdir("newdir")

使用例

カレントディレクトリに「test」というディレクトリを作成する例です。

#!/usr/bin/python
import os
# 「test」ディレクトリを作成する
os.mkdir("test")

chdir()メソッド ― カレントディレクトリを変更する

chdir()メソッドを使うと、現在作業中のディレクトリ(カレントディレクトリ)を別のディレクトリに変更できます。引数には、新しくカレントディレクトリにしたいディレクトリの名前を指定します。

構文

os.chdir("newdir")

使用例

「/home/newdir」ディレクトリへ移動する例です。

#!/usr/bin/python
import os
# カレントディレクトリを「/home/newdir」に変更する
os.chdir("/home/newdir")

getcwd()メソッド ― 現在のディレクトリを確認する

getcwd()メソッドは、現在の作業ディレクトリ(カレントワーキングディレクトリ)のパスを取得して表示します。「今どのディレクトリで作業しているのか」を確認したいときに便利です。

構文

os.getcwd()

使用例

カレントディレクトリのパスを取得する例です。

#!/usr/bin/python
import os
# 現在のディレクトリの場所を取得する
os.getcwd()

rmdir()メソッド ― ディレクトリを削除する

rmdir()メソッドは、引数として渡されたディレクトリを削除します。ただし、ディレクトリを削除する前に、その中にあるファイルやサブディレクトリをすべて削除しておく必要がある点に注意してください。空でないディレクトリは削除できません。

構文

os.rmdir('dirname')

使用例

「/tmp/test」ディレクトリを削除する例です。削除対象のディレクトリは完全なパス(絶対パス)で指定することが推奨されます。相対的な名前を指定した場合、カレントディレクトリ内から該当するディレクトリが検索されるため、意図しないディレクトリを操作しないよう注意しましょう。

#!/usr/bin/python
import os
# 「/tmp/test」ディレクトリを削除する
os.rmdir("/tmp/test")

まとめ

osモジュールを使えば、Pythonから手軽にディレクトリを操作できます。今回紹介した主なメソッドを整理すると以下の通りです。

  • mkdir():新しいディレクトリを作成する
  • chdir():カレントディレクトリを変更する
  • getcwd():現在の作業ディレクトリのパスを取得する
  • rmdir():空のディレクトリを削除する

なお、中身が入ったままのディレクトリを丸ごと削除したい場合は、shutilモジュールのrmtree()関数を使用します。また、より現代的な書き方としては、pathlibモジュールのPath.mkdir()Path.rmdir()といったオブジェクト指向的なAPIも利用できるので、用途に応じて使い分けるとよいでしょう。

  1. Pythonで再帰的にディレクトリを作成するには?os.makedirsの使い方を解説

    再帰的にディレクトリを作成する方法 Pythonで、まだ存在しない親ディレクトリも含めてまとめてフォルダを作成したい場合は、標準ライブラリの os.makedirs() を使用します。作成したいパスを引数として渡すだけで、途中階層のディレクトリがすべて自動的に生成されます。 import os os.makedirs(my_folder/another/folder, exists_ok=True) このコードでは、「my_folder」→「another」→「folder」というように、必要なディレクトリが一括で作成されます。 exists_ok=True を指定する理由 引数 exists

  2. Pythonでディレクトリを作成する方法をわかりやすく解説

    Pythonでディレクトリを作成する基本方法 Pythonでディレクトリ(フォルダ)を作成するには、まず os.path.exists() を使って、そのディレクトリがすでに存在するかどうかを確認します。存在しない場合のみ作成することで、エラーの発生を防ぐことができます。 import os if not os.path.exists(my_folder): os.makedirs(my_folder) os.makedirs() は、指定したパスの中間ディレクトリも必要に応じて自動的に作成してくれる便利な関数です。 EAFPスタイルでの書き方 Pythonでは「EAFP(Easi