我有一个包含500,000张图像的文件夹,按年和月分类在子文件夹中.我想创建一个执行此操作的脚本:
如果文件名与names.log中的任何文件名都不匹配,则删除该文件.
names.log将包含文件名,如:
image1.jpg
photo3.jpg
redcar.jpg
balloon2323.jpg
等…它有大约10,000个我想保留的文件名
我在服务器上有PHP和Python,但我不确定什么是最好的.我之前没有做任何脚本.任何人都可以如此友善地给我一段代码,以实现这一点,让我知道如何运行它?或者这可以用命令来实现?
解决方法:
使用os.walk
在Python中相当容易.警告,未经测试的代码.我假设名称列表每行包含一个名称
#!/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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。