Код кажется правильным, но мои файлы не удаляются - PullRequest
0 голосов
/ 03 февраля 2019

Я слышал, что python может облегчить жизнь, я хотел удалить дубликаты в папке A, сравнив папку B с папкой A, поэтому я решил скачать python и попробовать кодировать с python.Мой код кажется правильным, однако мои файлы не удаляются, что с ним не так?

Я пытался отменить связь, но не работает.

import os

with open(r"C:\pathto\output.txt", "w") as a:
    for path, subdirs, files in os.walk(r'C:\pathto\directoryb'):
       for filename in files:
         #f = os.path.join(path, filename)
         #a.write(str(f) + os.linesep) 
         a.write(str(filename) + '\n')

textFile = open(r'C:\output.txt', 'r')

line = textFile.readline()
while line:
 target = str(line)
 todelete = 'C:\directorya' + target
 if (os.path.exists(todelete)):
  os.remove(todelete)
 else:
  print("failed")
 line = textFile.readline()

textFile.close()

Я хочу, чтобы мои файлы были удалены, в основномпапка A содержит некоторые файлы в папке B, и я пытаюсь удалить ее.

1 Ответ

0 голосов
/ 03 февраля 2019

Проблема в том, что место, где вы удаляете файл, на самом деле не удаляет файл, а удаляет переменную, содержащую информацию о файле.

 todelete = 'C:\directorya' + target
 if (os.path.exists(todelete)):
  os.remove(todelete) # this is deleting todelete, but doesn't get rid of the file!

У меня была похожая проблема вЯ запустил программу, но со списком, и в конце концов мне пришлось использовать такой формат:

lst.remove(lst[val1][val2][val3]) # as opposed to something cleaner-looking, like 'lst.remove(var_to_del)'

Это боль, но я надеюсь, что это прояснит проблему!Вам нужно будет перейти к файлу без указания имени переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...