WinError2 不断弹出这个 python 3.7.3 脚本来删除文件树中的文件而无需滚动它们

WinError2 keeps popping up with this python 3.7.3 script to delete files in a file tree without having to scroll through them

我真的(2 天)对这一切都是陌生的。我正在尝试使用 python 3.7.3 脚本删除外部 HD 文件夹中的一堆文件,但不断弹出错误。

首先,此代码工作正常并找到文件夹:

import os
for folderName, subfolders, filenames in os.walk("D:\Practice"):
for filename in filenames:
   if filename.endswith('practice.docx'):
      #os.unlink(filename)
       print(filename)

但是当我删除 print(filename) 和哈希时,无法删除文件夹并弹出以下错误:

import os
   for folderName, subfolders, filenames in os.walk("D:\Practice"):
   for filename in filenames:
      if filename.endswith('practice.docx'):
      os.unlink(filename)

os.unlink(filename) FileNotFoundError: [WinError 2] The system cannot find the file specified: 'rootpractice.docx'

'rootpractice'文档被清楚识别但不会被删除。

有谁知道我该如何解决这个问题?非常感谢对这个初学者的任何帮助。

os.unlink 和其他需要文件路径的类似方法期望 link 相对于脚本所在的当前文件夹 运行 (您可以使用 os.getcwd() ) 或完整路径。

当您使用 os.walk 进行迭代时,您只传递文件名而不是完整路径。试试这个:

import os
for folderName, subfolders, filenames in os.walk("D:\Practice"):
    for filename in filenames:
        if filename.endswith('practice.docx'):
            full_path = os.path.join(folderName, filename)
            print("About to delete the file: {}".format(full_path))
            os.unlink(full_path)