Pythonでファイルを削除する方法を徹底解説|初心者向けに実例つきで解説!

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でのファイル管理がより柔軟かつ安全になります。
ぜひ日々のスクリプトに取り入れてみてください。

タイトルとURLをコピーしました