Python を使ってファイルやディレクトリを削除する方法
-
Python の
os
モジュールを使ってファイルを削除する -
Python の
pathlib
モジュールを用いたファイルの削除 - Python でパターンマッチングを利用してファイルを削除する
-
Python の
os
モジュールを用いたディレクトリの削除 -
Python の
pathlib
モジュールを用いたディレクトリの削除 -
Python の
shutil.rmtree
メソッドを使って空でないディレクトリを削除する
この記事では、os
、pathlib
、shutil
といった Python の組み込みパッケージを使ってファイルやディレクトリを削除する方法を紹介します。
Python の os
モジュールを使ってファイルを削除する
os
は Python 2 と Python 3 の両方で利用可能な組み込みパッケージです。
Python を使ってファイルを削除するには、os
モジュールの remove()
と unlink()
を使用することができます。これらの関数はどちらも動作は似ています。どちらも削除するファイルのパスを引数にとります。
import os
os.remove("test_dir/main.py")
この関数は test_dir
の中にある main.py
という名前のファイルを削除します。ここでは相対パスを使っているので、test_dir
は Python プログラムと同じルートフォルダになければなりません。絶対パスを使用することもできます。
import os
os.unlink("test_dir/main.py")
この関数は test_dir
の中にある main.py
というファイルも削除します。
どちらの関数も削除できるのはファイルのみです。削除するディレクトリのパスを指定すると IsADirectoryError
エラーが発生します。
同様に、指定したパスにファイルが存在しない場合は FileNotFoundError
を取得します。
ファイルを削除する権限がない場合は PermissionError
エラーが発生します。
ファイルの削除中にこれらのエラーに対処するには、例外処理を利用する必要があります。
import os
try:
os.remove("test_dir/main.py")
except OSError as e:
print(f"Error:{ e.strerror}")
出力:
Error:No such file or directory
そのようなファイルがない場合、プログラム全体がクラッシュするのではなく、出力にエラーが表示されます。
Python の pathlib
モジュールを用いたファイルの削除
pathlib
モジュールを用いてファイルを削除するには、まず pathlib
モジュールで定義された Path
オブジェクトを作成します。次に unlink()
メソッドを用いてファイルを削除します。
from pathlib import Path
filePath = Path("test_dir/main.py")
try:
filePath.unlink()
except OSError as e:
print(f"Error:{ e.strerror}")
ここでは、Path
クラスから filePath
オブジェクトのインスタンスを作成し、削除するファイルの場所を指定します。
pathlib
モジュールは Python 3.4 以上でのみ利用可能です。Python 2 では、pip
を使ってモジュールをインストールする必要があります。
Python でパターンマッチングを利用してファイルを削除する
glob
モジュールを用いてファイル内のパターンをマッチさせ、パターンにマッチするファイルを集めた後で、上記のいずれかの方法でそれらのファイルをすべて削除することができます。
import os
import glob
py_files = glob.glob("test_dir/*.py")
for py_file in py_files:
try:
os.remove(py_file)
except OSError as e:
print(f"Error:{ e.strerror}")
これは、test_dir
ディレクトリ内の拡張子 .py
のファイルをすべて削除することを意味します。
Python の os
モジュールを用いたディレクトリの削除
Python を使ってディレクトリをデリートするには、os
、pathlib
、shutlib
ディレクトリを使用することができます。os
と pathlib
は空のディレクトリのみを削除することができ、shutlib
は空でないディレクトリも削除することができます。
import os
dirPath = "test_dir"
try:
os.rmdir(dirPath)
except OSError as e:
print(f"Error:{ e.strerror}")
これは、現在の作業ディレクトリの中の空のディレクトリ test_dir
を削除します。
Python の pathlib
モジュールを用いたディレクトリの削除
ディレクトリが空でない場合、このメソッドを使ってディレクトリを削除できない場合、プログラムから Error: Directory not empty
という出力が表示されます。
空でないディレクトリを削除するには、pathlib
モジュールを使用することもできます。
from pathlib import Path
dirPath = Path("test_dir")
try:
dirPath.rmdir()
except OSError as e:
print(f"Error:{ e.strerror}")
また、現在の作業ディレクトリにある空のディレクトリ test_dir
も削除します。
Python の shutil.rmtree
メソッドを使って空でないディレクトリを削除する
Python を使って空でないディレクトリを削除するには、shutil
モジュールの rmtree
メソッドを使用します。
import shutil
dirPath = "test_dir"
try:
shutil.rmtree(dirPath)
except OSError as e:
print(f"Error:{ e.strerror}")
このメソッドは現在の作業ディレクトリにある test_dir
ディレクトリとその内容をすべて削除します。
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn関連記事 - Python File
- Python でディレクトリのすべてのファイルを取得する方法
- Python でファイルにテキストを追加する方法
- Python にファイルが存在するかどうかを確認する方法
- 特定の拡張子を持つファイルを Python でのみ見つける方法
- Python でファイルから特定の行を読み取る方法
- Python で gzip ファイルを読み取る