Pythonのファイル削除を解説|os.removeとpathlibの違い

Pythonのファイル削除を解説|os.removeとpathlibの違い

Pythonでファイルを削除する方法を解説します。os.remove()による基本的な削除方法、pathlibのPath.unlink()を使った削除、ファイル存在確認、FileNotFoundErrorへの対処法までサンプルコード付きでわかりやすく紹介します。

環境

  • OS windows10 pro 64bit
  • python 3.8.5

ファイルを削除

os.remove関数を使用すれば、ファイルを削除することが可能です。

import os

os.remove('foo.txt')

ファイルが存在しない場合は「FileNotFoundError」が発生します。

import os
os.remove('noexit.txt')

# FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。: 'noexit.txt'

フォルダも削除はできません。

import os
os.remove('foo')

# PermissionError: [WinError 5] アクセスが拒否されました。: 'foo'

複数のファイルを削除

複数のファイルを削除する場合は、globと、ワイルドカード *を使って削除します。

import os
import glob

for f in glob.glob('*.txt'):
    os.remove(f)

補足

Pythonでファイルを削除する場合は、os.remove()を利用する方法が一般的ですが、Python 3.4以降ではpathlibを利用した書き方もおすすめです。

from pathlib import Path

Path("sample.txt").unlink()

Path.unlink()を利用すると、オブジェクト指向でファイルを操作できるため、可読性の高いコードを書くことができます。

また、存在しないファイルを削除するとFileNotFoundErrorが発生するため、事前に存在確認を行うか、例外処理を利用すると安全です。

import os

if os.path.exists("sample.txt"):
    os.remove("sample.txt")

バッチ処理やログ削除など、実運用でファイル削除を行う場合は、誤って必要なファイルを削除しないよう十分注意して実行しましょう。

参考リンク

関連記事