我有一个包含500,000张图像的文件夹,按年和月分类在子文件夹中。我想创建一个执行此操作的脚本:
如果文件名与中的任何文件名都不匹配,names.log
则删除文件。names.log
将包含文件名,例如:
image1.jpg
photo3.jpg
redcar.jpg
balloon2323.jpg
等等...它大约有10,000个我想保留的文件名
我在服务器上安装了PHP和Python,但是我不确定什么是最好的选择。我之前没有做过任何脚本编写。谁能给我一些能实现这一目标的代码片段,让我知道如何运行它?或者,也许可以通过命令来实现?
在Python中使用,这相当容易os.walk
。警告,未经测试的代码。我假设名称列表每行包含一个名称,
#!/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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句