Pythonは、ファイルの作成・編集だけでなく、削除も簡単に行える便利なプログラミング言語です。
自動化スクリプトやログの整理、不要ファイルのクリーンアップなど、多くの場面でファイル削除は必要とされます。
本記事では、Pythonでファイルを削除するための基本的な方法から、安全に削除するための注意点、エラーへの対処方法まで、初心者でも理解できるように実例を交えて解説します。
これからPythonを使ったファイル操作に取り組む方は、ぜひ参考にしてください。
Pythonでファイルを削除する最も基本的な方法は、os
モジュールを使う方法です。os.remove()
関数を使用することで、指定したファイルを削除できます。
import os
file_path = "sample.txt"
if os.path.exists(file_path):
os.remove(file_path)
print("ファイルを削除しました。")
else:
print("指定されたファイルが存在しません。")
このコードでは、まずos.path.exists()
でファイルが存在するかを確認し、存在していれば削除します。
これにより、存在しないファイルを削除しようとしたときに発生するエラーを回避できます。
Python 3.4以降では、pathlib
モジュールを使用することで、より直感的にファイル操作を行うことができます。Path.unlink()
メソッドを使えば、ファイルの削除も簡単にできます。
from pathlib import Path
file = Path("sample.txt")
if file.exists():
file.unlink()
print("ファイルを削除しました。")
else:
print("ファイルが見つかりません。")
こちらもexists()
でファイルの存在確認をしてから削除しているため、安全です。
Windowsなどの環境では、ファイルが別のプロセスで使用中の場合、削除できないことがあります。
そのようなケースでは、エラー処理をしっかり行いましょう。
import os
file_path = "sample.txt"
try:
os.remove(file_path)
print("ファイルを削除しました。")
except FileNotFoundError:
print("ファイルが存在しません。")
except PermissionError:
print("ファイルにアクセスできません(他のプロセスで使用中の可能性あり)。")
except Exception as e:
print(f"予期せぬエラーが発生しました: {e}")
このようにtry-except
を使えば、原因に応じたメッセージを出力でき、プログラムの安定性が向上します。
os.remove()
やPath.unlink()
はファイル専用の削除メソッドです。
誤ってディレクトリに対して使うとエラーになります。
import os
# ディレクトリを削除しようとするとエラー
os.remove("test_dir")
この場合、IsADirectoryError
が発生します。ディレクトリを削除するには、os.rmdir()
やshutil.rmtree()
を使いましょう。
特定の拡張子(例:.log
)のファイルを一括で削除したい場合は、glob
モジュールと組み合わせることで実現可能です。
import glob
import os
for file in glob.glob("*.log"):
try:
os.remove(file)
print(f"{file} を削除しました。")
except Exception as e:
print(f"{file} の削除に失敗しました: {e}")
ログファイルの定期的な削除などに便利です。
削除操作は基本的に「元に戻せない」ものです。
そのため、削除前にバックアップを取っておく、あるいは「ゴミ箱」に移動する方法も検討するべきです。
from send2trash import send2trash
send2trash("important_file.txt")
print("ファイルをゴミ箱に移動しました。")
このようにしておけば、万が一のときにも元に戻せる可能性があります。
※send2trash
モジュールは別途インストールが必要です。
pip install send2trash
Pythonでファイルを削除する方法はいくつかありますが、重要なのは「安全に削除すること」です。
誤って重要なファイルを消してしまわないよう、削除前の確認や例外処理、必要に応じてゴミ箱移動などを取り入れましょう。
os.remove()
またはPath.unlink()
が便利glob
モジュールが便利send2trash
を使えばゴミ箱への移動も可能これらを活用すれば、Pythonでのファイル管理がより柔軟かつ安全になります。
ぜひ日々のスクリプトに取り入れてみてください。