Pythonでファイルやフォルダを削除するにはosモジュールを使用します。
動作はWindows10で確認しています。
ファイルを削除する #
カレントフォルダ内の構成は以下のようになっています。
├─file1.txt
│
├─folder1/
└─folder2/
└─file2.txt
folder1とfolder2はフォルダです。
folder2にはfile2.txtファイルが入っています。
osモジュールですべてのファイルとフォルダを削除してみます。
osモジュールで削除したファイルやフォルダの復活はできないので注意してください。
os.remove
を使用してfile1.txtを削除してみます。
import os
os.remove('./file1.txt')</pre>
os.rmdir
を使用してfolder1を削除してみます。
os.rmdir('./folder1')
folder2を削除してみます。
フォルダ内にファイルが存在する状態でフォルダを削除するとエラーが発生します。
os.rmdir('./folder2') # OSError: [WinError 145] ディレクトリが空ではありません。: './folder2'</pre>
先にフォルダ内に存在するファイルを削除してからフォルダを削除する必要があります。
os.remove('./folder2/file2.txt')
os.rmdir('./folder2')
削除でゴミ箱に移動したいときはsend2trash #
上の注意書きにも書きましたが、os.remove
とos.rmdir
で削除したファイルやフォルダは完全に削除されてしまいます。
削除でゴミ箱にファイルやフォルダを移動したいときはsend2trashを使用します。
send2trashを利用するにはpipでsend2trashをインストールします。
pip install send2trash
send2trashの使用方法は以下になります。
from send2trash import send2trash
send2trash('./file1.txt')
send2trash('./folder1')
send2trash('./folder2') # フォルダ内にファイルが存在しても、フォルダの削除ができる
send2trashメソッドはファイルとフォルダの削除、両方に対応しています。
send2trashメソッドでファイルやフォルダを削除するとゴミ箱にファイルが移動します。
フォルダを削除するときに、フォルダ内にファイルが存在してもゴミ箱に移動できます。
また、send2trashを使用してゴミ箱に移動したファイルやフォルダを元のパスに戻すには、手動で戻す必要があります。