1. ホーム
  2. python

[解決済み] パターンに一致する複数のファイルを削除する

2023-07-08 04:31:21

質問

PythonとDjangoを使用してオンラインギャラリーを作りました。私はちょうど編集機能を追加し始め、回転から始めました。私はオンデマンドでサムネイルを自動生成するためにsorl.thumbnailを使用しています。

元ファイルを編集するとき、すべてのサムネイルをクリーンアップする必要があるので、新しいサムネイルが生成されます。1つの画像につき、3つか4つあります(私は場面ごとに異なるものを用意しています)。

I かもしれない をファイル変数にハードコードすることもできますが...。しかし、それは面倒なことで、もし私がやり方を変えたら、コードを見直す必要があります。

理想的には、正規表現による削除を行いたいと考えています。正規表現では、私のオリジナルはすべてこのような名前になっています。

^(?P<photo_id>\d+)\.jpg$

だから、削除したいのです。

^(?P<photo_id>\d+)[^\d].*jpg$

(ここで photo_id を掃除したいIDに置き換えています)

どのように解決するのですか?

以下のような方法を試してみてください。

import os, re

def purge(dir, pattern):
    for f in os.listdir(dir):
        if re.search(pattern, f):
            os.remove(os.path.join(dir, f))

次に、ファイルを含むディレクトリとマッチさせたいパターンを渡します。