【发布时间】:2023-04-20 02:19:02
【问题描述】:
背景:
我的目标是在两个不同的文件夹(没有子文件夹)中找到重复的文件。为此,我使用以下 Python 脚本:
###Check ob alle Archive noch vorhanden oder ob Daten bei Check gelöscht wurden
def listfiles(path):
files = []
for dirName, subdirList, fileList in os.walk(path):
dir = dirName.replace(path, '')
for fname in fileList:
if fname.endswith("_GIS.7z"):
files.append(os.path.join(dir, fname))
return files
x = listfiles(root)
y = listfiles(backupfolderGIS)
#q = [filename for filename in x if filename not in y]
files_only_in_x = set(x) - set(y)
files_only_in_y = set(y) - set(x)
files_only_in_either = set(x) ^ set(y)
files_in_both = set(x) & set(y)
all_files = set(x) | set(y)
print "Alle Datein:"
print all_files
print " "
print "Nur im Zwischenspeicher:"
print files_only_in_x
print " "
print "Nur im Backupordner:"
print files_only_in_y
print " "
print "Nur einem von beiden Ordnern:"
print files_only_in_either
print " "
print "In beiden Ordnern:"
print files_in_both
print " "
相关的输出变量/列表是files_in_both(文件夹);它向我展示了复制品;如果我使用print,它看起来像set(['NameoftheProject_GIS.7z', 'NameofanotherProject_GIS.7z'])。
问题:
如何使用此输出/信息(目录中的重复文件)删除/移动它们?例如文件夹backupfolderGIS/列表files_in_both中的文件NameoftheProject_GIS.7z和NameofanotherProject_GIS.7z。
【问题讨论】:
标签: python list directory delete-file os.walk