Pythonで「ファイル削除」を安全に扱うための基礎と実務テンプレート
ファイル削除は業務自動化の中でも特に慎重さが求められる操作です。
「不要ファイルの定期削除」「処理後の一時ファイルの掃除」「エラーファイルの隔離後削除」など、実務では頻繁に登場します。
ただし、削除は“元に戻せない”操作なので、初心者ほど「安全に削除するための考え方」をしっかり身につけることが大切です。
ここでは、Pythonの基本的な削除方法から、実務でそのまま使えるテンプレートまで、丁寧に解説します。
ファイル削除の基本:os.remove と os.unlink
Pythonでファイルを削除する最も基本的な方法
Pythonでファイルを削除するには、os.remove() または os.unlink() を使います。
どちらも同じ動作をするため、好きな方を使って構いません。
import os
os.remove("data/temp.txt")
print("削除しました")
Pythonこの一行で data/temp.txt は完全に削除されます。
削除後に復元する機能はありません。ここが最重要ポイントです。
削除前に「存在確認」をする理由を深掘りする
存在しないファイルを削除しようとするとエラーになる
次のように、存在しないファイルを削除しようとすると FileNotFoundError が発生します。
os.remove("data/not_exist.txt")
Python業務自動化では、ファイルの有無が日によって変わることが多いため、削除前に存在確認をするのが安全です。
import os
path = "data/temp.txt"
if os.path.exists(path):
os.remove(path)
print("削除しました:", path)
else:
print("ファイルが存在しません:", path)
Pythonこの「存在確認 → 削除」の流れは、実務で必須のパターンです。
フォルダを削除したい場合の注意点
os.remove は「ファイル専用」である
os.remove() はファイル専用であり、フォルダを削除しようとするとエラーになります。
フォルダを削除したい場合は os.rmdir() または shutil.rmtree() を使いますが、
今回のテーマは「ファイル削除」なので、フォルダ削除は別の章で扱うのが安全です。
例題①:処理後の一時ファイルを削除する
シナリオ
データ処理の途中で一時ファイル(tempファイル)を作ることがあります。
処理が終わったら削除してクリーンな状態にしたい、というケースです。
コード例
import os
temp_file = "work/temp_data.csv"
# 処理が終わったと仮定
print("処理完了")
if os.path.exists(temp_file):
os.remove(temp_file)
print("一時ファイルを削除しました:", temp_file)
else:
print("一時ファイルは存在しませんでした")
Pythonこのテンプレートは、どんな業務スクリプトにも組み込みやすい構造です。
例題②:特定の拡張子のファイルだけを削除する
シナリオ
logs フォルダに大量の .log ファイルが溜まっているとします。
一定期間ごとに「ログファイルだけ削除したい」というのはよくある業務です。
コード例
import os
log_dir = "logs"
for name in os.listdir(log_dir):
path = os.path.join(log_dir, name)
if not os.path.isfile(path):
continue
if name.lower().endswith(".log"):
os.remove(path)
print("削除:", path)
Pythonこのコードは「候補を全部取得 → ファイルだけに絞る → 拡張子で絞る → 削除」という流れになっています。
業務自動化の基本パターンそのものです。
例題③:削除前にバックアップを取る安全設計
シナリオ
削除したいけれど、万が一のためにバックアップを残しておきたい。
これは実務で非常に多い要望です。
コード例
import os
import shutil
src = "data/report_old.csv"
backup_dir = "backup_before_delete"
backup_path = os.path.join(backup_dir, "report_old.csv")
os.makedirs(backup_dir, exist_ok=True)
if os.path.exists(src):
shutil.copy(src, backup_path)
os.remove(src)
print("バックアップ後に削除しました:", src)
else:
print("削除対象のファイルがありません")
Python削除前に shutil.copy() でバックアップを取ることで、
「消してしまった…」という事故を防ぐことができます。
削除処理を安全にするための考え方を深掘りする
どのファイルを削除するかを“明確に”する
削除は取り返しがつかないため、次のような工夫が重要です。
ファイル名を完全一致で指定する
曖昧なパターン(例:"data/*.csv")は誤削除の原因になります。
削除前にログを出す
「何を削除したか」が後で追えるようにする。
削除前にバックアップを取る
重要ファイルなら必須。
削除対象を人間が確認できるようにする
最初は「削除せずに一覧表示だけ」するのが安全です。
これらは業務自動化の品質を大きく左右するポイントです。
まとめ:ファイル削除は“慎重さ”が最大の武器
ファイル削除は、業務自動化の中で最も慎重に扱うべき操作です。
しかし、正しい手順と安全設計を身につければ、強力な自動化ツールになります。
削除前の存在確認
削除前のバックアップ
削除対象の明確化
ログ出力による追跡性
これらを意識するだけで、あなたのスクリプトは一気に“実務レベル”になります。
もしよければ、今あなたのPCにある「毎回手で削除しているファイル」を思い浮かべてみてください。
その作業は、今日紹介したテンプレートで確実に自動化できます。
