Python ファイルとディレクトリの作成と削除
ここでは Python でファイルとディレクトリの作成と削除をする方法についてご説明します。
Python でファイルを作成する
Python で open() 関数で w、aモードを指定すると、ファイルがない場合はファイルが作成されます。
詳しくはこちらのページでご確認ください。 Python でファイル書き込み
ファイルを排他的に作成したい時には、open() 関数で x モードを指定することで作成できます。
x モードを指定すると、ファイルが存在する場合はエラーになるので、同じ名前のファイルが存在する時に、そのファイルを変更してしまわないようにしたい時などに使えます。
例えば、次のような感じで、x モードでファイルを生成して書き込むことができます。
try:
with open("test3.txt", "x") as f:
f.write("x モードでファイルを作成しました。")
except FileExistsError:
print("ファイルが既に存在します。")
実行すると、次のようにファイルが生成されました。
同じコードをもう一度実行すると、既にファイルが存在するので次のように出力されます。
ファイルが既に存在します。
Python でディレクトリを作成する
Python でディレクトリを作成したい時には、os モジュールの mkdir() 関数を使って作成できます。
例えば、実行するコードとディレクトリの下に dir1 という名前のディレクトリを生成したい時は、次のようにします。
import os
os.mkdir("dir1/")
上のコードを実行すると dir1 が作成されました。
指定したディレクトリが既にに存在する時には FileExistsError のエラーになってしまうので、以下のようにファイルの存在確認して、存在しない時のみ生成するようにしても良いと思います。
import os
dirname = "dir1/"
if not(os.path.exists(dirname)):
os.mkdir(dirname)
mkdir() では、存在するディレクトリの下にしかディレクトリを作れないので、何階層か下にディレクトリを作りたいような時は makedirs() を使います。
import os
dirname = "dir2/dir3/dir4/"
if not(os.path.exists(dirname)):
os.makedirs(dirname)
上のコードを実行すると dir2、dir3、dir4 が作成されました。
Python でファイルを削除する
Python でファイルを削除するには、os モジュールの remove() 関数を使って削除できます。
例えば、上で作成した test3.txt ファイルを削除したいのであれば、次のようにします。
import os
os.remove("test3.txt")
指定したファイルが存在しない時は FileNotFoundError のエラーになるので、以下のようにファイルの存在確認して、存在する時のみ削除するようにしても良いと思います。
import os
filename = "test3.txt"
if os.path.exists(filename):
os.remove(filename)
Python でディレクトリを削除する
Python でディレクトリを削除するには、os モジュールの rmdir() 関数や、shutil モジュールの rmtree() 関数を使って削除できます。
rmdir() 関数のほうは、ディレクトリが空っぽの時しか削除できず、空ではない場合は OSError: [Errno 66] Directory not empty: 'ディレクトリ名' のようなエラーになります。
rmtree() 関数のほうは、ディレクトリの中にあるディレクトリやファイルもまとめて削除します。
dir1 という名前の空のディレクトリを削除したい時は次のようにします。
import os
os.rmdir("dir1")
dir1 という名前のディレクトリとその中身をまとめて削除したい時は次のようにします。
import shutil
shutil.rmtree("dir1")
どちらの関数も指定したディレクトリが存在しない場合は FileNotFoundError エラーになるので、以下のようにディレクトリの存在を確認して、存在する時のみ削除するようにしても良いと思います。
import os
import shutil
dirname = "dir1/"
if os.path.exists(dirname):
shutil.rmtree(dirname)
以上、Python でファイルとディレクトリの作成と削除をする方法についてご説明しました。