Python ファイルとディレクトリの作成と削除

ここでは Python でファイルとディレクトリの作成と削除をする方法についてご説明します。

Python でファイルを作成する

Python で open() 関数で waモードを指定すると、ファイルがない場合はファイルが作成されます。

詳しくはこちらのページでご確認ください。 Python でファイル書き込み


ファイルを排他的に作成したい時には、open() 関数で x モードを指定することで作成できます。

x モードを指定すると、ファイルが存在する場合はエラーになるので、同じ名前のファイルが存在する時に、そのファイルを変更してしまわないようにしたい時などに使えます。


例えば、次のような感じで、x モードでファイルを生成して書き込むことができます。

try:
    with open("test3.txt", "x") as f:
        f.write("x モードでファイルを作成しました。")
except FileExistsError:
    print("ファイルが既に存在します。")

実行すると、次のようにファイルが生成されました。

Python ファイルの生成 1

Python ファイルの生成 2

同じコードをもう一度実行すると、既にファイルが存在するので次のように出力されます。

ファイルが既に存在します。

Python でディレクトリを作成する

Python でディレクトリを作成したい時には、os モジュールの mkdir() 関数を使って作成できます。

例えば、実行するコードとディレクトリの下に dir1 という名前のディレクトリを生成したい時は、次のようにします。

import os

os.mkdir("dir1/")

上のコードを実行すると dir1 が作成されました。

Python ファイルの生成 3


指定したディレクトリが既にに存在する時には 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 ファイルの生成 4

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 でファイルとディレクトリの作成と削除をする方法についてご説明しました。

© 2024 やさしい Python 入門