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)
我真的(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)