首页 > 解决方案 > 如何检查和删除python中两个不同目录中不同的文件?

问题描述

我有两个文件夹,我想在两个文件夹中保留相同的文件。所以现在如果要删除两个文件夹中都不存在的文件,使用文件名“相同”

我正在尝试这个,但似乎没有成功。

dir1 = os.listdir('/home/Desktop/computed_1d/')
dir2 = os.listdir('/home/Desktop/computed_2d_blaze/')

for filename in dir1:
   try:
      for filen in dir2:
         if filename != filen:
           os.remove(filename)
   except:
      pass

谁能告诉我我在哪里犯了错误?

标签: linuxpython-2.7filedirectory

解决方案


您可以使用 set 有效地检查重复项。

dir1 = os.listdir(path1)
dir2 = os.listdir(path2)

duplicates = set(dir1) & set(dir2)

# delete from dir1
for file in dir1:
    if file not in duplicates:
        os.remove(os.path.join(path1,file))

# delete from dir2
for file in dir2:
    if file not in duplicates:
        os.remove(os.path.join(path2,file))

推荐阅读