【发布时间】:2017-06-12 18:56:59
【问题描述】:
解决方案请参阅此评论底部的编辑。
问题:我有一个包含一堆图像的目录,命名如下:
- image001.nef
- image002.nef
- image003.nef
- image003 - 20170609.jpg
- image004.nef
- image005.nef
- image006 - 20170609.nef
- image007.nef
- image007 - 20170609.jpg
- image008.jpg
- image008 - 20170609.nef
我想查找所有具有重复基本名称(如 imageXXX)且扩展名为 JPG 的图像
所以从我上面的列表中,只有三个符合删除条件的项目(我有 bold 这些项目)。
我有 2,500 张图片,所以我需要一种 Python 的方式手动浏览。
我很难找到要使用的示例脚本,我发现的所有脚本都在检查 HASH 或其他东西,我认为这没有用,因为图像确实相似,但不完全相同。
干杯
编辑: 感谢 dawg,我能够得到我想要的输出......这是对我有用的最终代码:
import os
directory = r'C:\temp'
out_directory = r'C:\temp\temp_usa_photos'
fns = os.listdir(directory)
ref_nef = {fn[0:15] for fn in fns if fn.upper().endswith('.NEF')}
print ref_nef
out_list = filter(lambda e: e[0:15] in ref_nef, [fn for fn in fns if fn.upper().endswith('.JPG')])
print out_list
for f in out_list:
input_file = os.path.join(directory, f)
output_file = os.path.join(out_directory, f)
os.rename(input_file, output_file)
【问题讨论】:
-
到目前为止你做了什么?
-
你只需要根据文件名删除它们吗?我不完全明白是什么阻止您遍历所有图像,提取基本名称,将它们写入字典/列表,然后删除遇到的所有进一步重复。
-
@moritzg 我刚刚在原始评论中添加了代码
标签: python duplicates