年と月ごとにサブフォルダーに並べ替えられた 500,000 個のイメージを持つフォルダーがあります。これを行うスクリプトを作成したいと思います。
ファイル名の場合確かにファイル名を一致させ、names.log
ファイルを削除します。
names.log
ファイル名が含まれます。例:
image1.jpg
photo3.jpg
redcar.jpg
balloon2323.jpg
ちょっと…保存したいファイル名が10,000個あります。
私のサーバーにはPHPとPythonがありますが、これに最も適したものが何であるかわかりません。私は以前は何のスクリプトも書いていませんでした。誰かがこれを行うコードを提供し、それを実行する方法を教えてもらえますか?それともコマンドで達成できますか?
ベストアンサー1
これはPythonでは非常に簡単です。os.walk
。警告、テストされていないコードです。名前リストには、1行につき1つの名前が含まれているとします。
#!/usr/bin/python2
import os
names_file = open('names.log')
names = set(line.rstrip('\n') for line in names_file.readlines())
names_file.close()
for root, dirs, files in os.walk('/path/to/top/directory'):
for name in files:
path = os.path.join(root, name)
if os.path.isfile(path):
if name not in names:
print path
#os.remove(path) # uncomment this line if you're happy with the set of files to remove