import osimport filecmpimport hashlibimport shutildef compare_imagesfolder1 folder2 # 获取两个文件夹中的所有图片文件 images1 = f for f in oslistdirfolder1 if ospathisfileospathjoinfolder1 f images2 = f for
在移动路径后,可以使用break语句跳出当前循环,以避免出现找不到原来路径的情况。以下是修改后的代码:
import os
import filecmp
import hashlib
import shutil
def compare_images(folder1, folder2):
# 获取两个文件夹中的所有图片文件
images1 = [f for f in os.listdir(folder1) if os.path.isfile(os.path.join(folder1, f))]
images2 = [f for f in os.listdir(folder2) if os.path.isfile(os.path.join(folder2, f))]
# 遍历第一个文件夹中的图片
for image1 in images1:
path1 = os.path.join(folder1, image1)
# 遍历第二个文件夹中的图片
for image2 in images2:
path2 = os.path.join(folder2, image2)
# 比较两张图片文件是否相同
if filecmp.cmp(path1, path2, shallow=False):
# 获取原文件夹名字
folder_name = os.path.basename(folder1)
# 修改文件路径为G:\unuse,并重命名加上原文件夹名字
new_path = os.path.join("G:\\unuse", folder_name + "_" + image2)
shutil.move(path2, new_path)
print(f"Moved and renamed: {path2} -> {new_path}")
break
# 比较两个文件夹中的图片
folder1 = r"G:\清洗完成\上海新天地"
folder2 = r"G:\清洗完成\上海石库门"
compare_images(folder1, folder2)
``
原文地址: http://www.cveoy.top/t/topic/ibDR 著作权归作者所有。请勿转载和采集!