最近手机更新安卓11手机文件夹无法访问date目录,导致我的图片无法在手机相册看到(´゚Д゚`),只能复制到date文件夹以外保存,然后就有重复文件的问题了,比如说美图.jpg 美图.(1).jpg
这样的情况,我想用Python对比然后我只想删除美图.(1).jpg(很简单我知道)
但我一个操作就复杂化了,因为我自己手动删除的时候删掉了一部分美图.jpg 反而留下来 美图.(1).jpg
现在我想问问可不可以对比美图.jpg 美图.(1).jpg
假如有美图.jpg且有美图.(1).jpg则删除美图.(1).jpg
只有美图.jpg 或美图.(1).jpg则不删除
查找所有的xxx(1).jpg,找到一张,就查找对应名字不带(1)的文件,如果存在就删除xxx(1).jpg,不存在就直接将xxx(1).jpg重命名为xxx.jpg
或者:计算每张图片的hash值,并创建空列表,如果下一张图片在列表中则删除,不在的话则加入列表
import os
import re
path = r"E:/xxx" #目录路径
FileNames=os.listdir(path)
for fn in FileNames:
if re.search(r'\.\(\d+\)\.jpg',fn):
ffn=os.path.join(path,fn)
refn = re.sub(r'\.\(\d+\)','',fn)
ffn2=os.path.join(path,refn)
if refn in FileNames:
print("删除",fn)
os.remove(ffn)
else:
print(fn,"改名为",refn)
os.rename(ffn,ffn2)
import os
import re
'''获取指定文件夹下所有指定后缀名的文件的绝对路径'''
def get_files_path(file_dir, doc_type='.json'):
files_path=[]
for root, dirs, files in os.walk(file_dir):
for file in files:
if os.path.splitext(file)[1] == doc_type:
files_path.append(os.path.join(root, file))
return files_path
上面函数得到指定文件夹下的所有.json文件的绝对路径,后面的你自己写吧,删除文件应该不难
import os
import re
'''获取指定文件夹下所有指定后缀名的文件的绝对路径'''
def get_files_path(file_dir, doc_type='.json'):
files_path=[]
for root, dirs, files in os.walk(file_dir):
for file in files:
if os.path.splitext(file)[1] == doc_type:
files_path.append(os.path.join(root, file))
return files_path
上面函数得到指定文件夹下的所有.json文件的绝对路径,后面的你自己写吧,删除文件应该不难
import os
path = r"C:\Users\46045\Desktop\删除测试"
files = os.listdir(path)
for file in files:
print(file)
i = 0
for file in files:
old = path + os.sep + files[i]
new = path + os.sep + file.replace(' .(1)', '')
# os.rename(name, 'wang' + str(test_id) + '.jpg')
os.path.isfile(new)
os.rename(old, new)
print('************************fenge*********************',file)
i += 1
我先弄了一个更改名字的方法
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632