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