Pythonは、ファイルの作成・編集だけでなく、削除も簡単に行える便利なプログラミング言語です。
自動化スクリプトやログの整理、不要ファイルのクリーンアップなど、多くの場面でファイル削除は必要とされます。
本記事では、Pythonでファイルを削除するための基本的な方法から、安全に削除するための注意点、エラーへの対処方法まで、初心者でも理解できるように実例を交えて解説します。
これからPythonを使ったファイル操作に取り組む方は、ぜひ参考にしてください。
osモジュールを使ったファイル削除の基本
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()
でファイルが存在するかを確認し、存在していれば削除します。
これにより、存在しないファイルを削除しようとしたときに発生するエラーを回避できます。
pathlibモジュールを使ったモダンな方法
Python 3.4以降では、pathlib
モジュールを使用することで、より直感的にファイル操作を行うことができます。Path.unlink()
メソッドを使えば、ファイルの削除も簡単にできます。
例:pathlibによる削除
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
モジュールと組み合わせることで実現可能です。
例:.logファイルを一括削除
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}")
ログファイルの定期的な削除などに便利です。
削除操作は元に戻せない!バックアップのすすめ
削除操作は基本的に「元に戻せない」ものです。
そのため、削除前にバックアップを取っておく、あるいは「ゴミ箱」に移動する方法も検討するべきです。
例:send2trashでゴミ箱に移動
from send2trash import send2trash
send2trash("important_file.txt")
print("ファイルをゴミ箱に移動しました。")
このようにしておけば、万が一のときにも元に戻せる可能性があります。
※send2trash
モジュールは別途インストールが必要です。
pip install send2trash
まとめ:状況に応じたファイル削除を選ぶことが大切
Pythonでファイルを削除する方法はいくつかありますが、重要なのは「安全に削除すること」です。
誤って重要なファイルを消してしまわないよう、削除前の確認や例外処理、必要に応じてゴミ箱移動などを取り入れましょう。
本記事のまとめ
- 単純な削除には
os.remove()
またはPath.unlink()
が便利 - 存在確認や例外処理を組み合わせて安全性を確保
- ファイルとディレクトリは別扱いに注意
- 拡張子ごとの一括削除には
glob
モジュールが便利 send2trash
を使えばゴミ箱への移動も可能
これらを活用すれば、Pythonでのファイル管理がより柔軟かつ安全になります。
ぜひ日々のスクリプトに取り入れてみてください。