【Python】ファイルやフォルダを削除する

Pythonでファイルやフォルダを削除するにはosモジュールを使用します。

動作はWindows10で確認しています。

ファイルを削除する

カレントフォルダ内の構成は以下のようになっています。

1├─file1.txt
23├─folder1/
4└─folder2/
5     └─file2.txt

folder1とfolder2はフォルダです。
folder2にはfile2.txtファイルが入っています。

osモジュールですべてのファイルとフォルダを削除してみます。

Warning

osモジュールで削除したファイルやフォルダの復活はできないので注意してください。

os.removeを使用してfile1.txtを削除してみます。

1import os
2
3os.remove('./file1.txt')</pre>

os.rmdirを使用してfolder1を削除してみます。

1os.rmdir('./folder1')

folder2を削除してみます。
フォルダ内にファイルが存在する状態でフォルダを削除するとエラーが発生します。

1os.rmdir('./folder2')  # OSError: [WinError 145] ディレクトリが空ではありません。: './folder2'</pre>

先にフォルダ内に存在するファイルを削除してからフォルダを削除しましょう。

1os.remove('./folder2/file2.txt')
2os.rmdir('./folder2')

削除でゴミ箱に移動したいときはsend2trash

上の注意書きにも書きましたが、os.removeとos.rmdirで削除したファイルやフォルダは完全に削除されてしまいます。
削除でゴミ箱にファイルやフォルダを移動したいときはsend2trashを使用します。

send2trashを利用するにはpipでsend2trashをインストールします。

1pip install send2trash

anaconda環境でsend2trashをインストールするにはconda installを使用します。

1conda install send2trash

send2trashの使用方法は以下になります。

1from send2trash import send2trash
2
3send2trash('./file1.txt')
4send2trash('./folder1')
5send2trash('./folder2')  # フォルダ内にファイルが存在しても、フォルダの削除ができる

send2trashメソッドはファイルとフォルダの削除、両方に対応しています。
send2trashメソッドでファイルやフォルダを削除するとゴミ箱にファイルが移動します。

Info
  • フォルダを削除するときに、フォルダ内にファイルが存在してもゴミ箱に移動できます。
  • send2trashを使用してゴミ箱に移動したファイルやフォルダを元のパスに戻すには、手動で戻す必要があります。

関連ページ