如何解决删除名称中带括号的重复文件,仅当原始文件存在时
我真的没有找到适合我需要的任何东西,我不知道如何继续。
我有很多的照片,分散在不同的文件夹中,而其中许多只是重复的。例如:
20180514.jpg(1).jpg
20180514.jpg
或
20180514(1).jpg
现在,我想创建一个python脚本,它查找带括号的文件,检查是否存在不带括号的相关文件,并删除带括号的文件。由于我缺乏 python 技能,我设法搜索所有带有通配符的文件:
parenthesisList = glob.glob('**/*(*)*',recursive=True)
理论上可以从那里删除它们,但是有3万多张图片,我不敢直接删除它们,不知道它们是否真的有原始文件。
现在棘手的部分是将该列表与另一个列表进行比较,例如:
everythingList = glob.glob('**/*(*)*',recursive=True)
并评估,其中的哪些文件
parenthesisList
有一个同名文件,但括号除外。
好处是只删除文件,如果文件的大小相同或更少,但不需要真的。感谢您的帮助!
编辑:我的帖子听起来像是希望有人为我做这件事,但如果不清楚,我的问题是:如何检查列表 A 中的项目是否包含列表 A 中减去“(”?
解决方法
from os import listdir
for filename in listdir(r"C:\Users\...\Pictures"):
# check if file name contains parenthesis
if "(" in filename:
os.remove(r"C:\Users\...\Pictures\\" + filename)
请注意,这也会删除带有“(”的文件夹名称。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。