该代码似乎正确,但是我的文件没有被删除

时间:2019-02-03 10:13:16

标签: python-3.x windows

我听说python可以使生活更轻松,我想通过将folderB与folderA进行比较来删除folderA中的重复项,因此我决定下载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()

我想删除我的文件,基本上folderA在folderB中包含一些文件,而我正试图将其删除。

1 个答案:

答案 0 :(得分:0)

问题在于,您要删除文件的地方实际上并不是在删除文件,而是在删除包含文件信息的变量。

 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)'

这很痛苦,但我希望这可以解决这个问题!您必须在不给其变量名的情况下转到文件。