Как проверить и удалить файлы, которые не совпадают в двух разных каталогах в Python? - PullRequest
0 голосов
/ 31 августа 2018

У меня две папки, и я хочу сохранить одинаковые файлы в обеих папках. Так что теперь, если вы хотите удалить файлы, которых нет в обеих папках, с "то же самое" , используя имена файлов.

Я пытаюсь это сделать, но, похоже, ничего не получается.

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

Может кто-нибудь сказать мне, где я совершаю ошибку?

1 Ответ

0 голосов
/ 31 августа 2018

Вы можете использовать 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...