【Python】ファイル名を指定して、パソコン内のファイルを一括削除【Mac】

2022年6月5日

Pythonでファイル名を指定して、パソコン内のファイルを一括削除したときのメモ

完全に削除はos.remove()ですが、

ゴミ箱に移動のsend2trash()を使用してあげた方が安心です。

pyファイルを読み込んで削除する場合

「/フォルダパス/」内にある「photo-150×150.jpg」「photo-200×200.jpg」「photo-scaled.jpg」というサムネイルだけを削除してみます。

import os
from glob import glob
from send2trash import send2trash

os.chdir('/フォルダパス/')
send2trash(glob('*-*x*.jpg'))
send2trash(glob('*-*x*.png'))
send2trash(glob('*-scaled.jpg'))

上のような記述のファイル名「__send2trash.py」を作ってデスクトップに保存した後、

Macのターミナルアプリで下記コマンドを実行。

sei@MacBook-Pro ~ % python3 /Users/sei/Desktop/__send2trash.py

send2trashのインストールがまだという場合

https://sei-simple.com/it/python-send2trash

Pythonのインストールがまだという場合

https://www.python.jp/install/macos/install_python.html

ターミナル – インタプリタで削除する場合

Macのターミナルアプリを起動して

sei@MacBook-Pro ~ % python3

モジュールインポート

>>> import os
>>> import glob
>>> from send2trash import send2trash

~~デスクトップの「10」というフォルダに移動

os.chdir('/Users/sei/Desktop/10')

~~現在のディレクトリを確認

>>> os.getcwd()
'/Users/sei/Desktop/10'

~~~フォルダ内の全ファイル名確認

>>> os.listdir()

~~~フォルダ内の*-*x*.jpgというファイル名表示(ワイルドカード*は全ての文字列)

>>> glob.glob('*-*x*.jpg')

フォルダ内の*-*x*.jpgというファイルをゴミ箱に移動(ワイルドカード*は全ての文字列)

send2trash(glob.glob('*-*x*.jpg'))

完全に削除したい場合

>>> for p in glob.glob('*-*x*.jpg'):
...  if os.path.isfile(p):
...   os.remove(p)

注意点

普通にゴミ箱に入れた場合、「元に戻す」という項目で簡単に元のフォルダに戻せますが、

send2trashでゴミ箱に移動した場合「元に戻す」が選べないので、ドラッグやコピペで移動してあげる必要があります。

Python

Posted by sei