首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WinError2不断弹出这个python3.7.3脚本来删除文件树中的文件,而不必滚动它们。

问WinError2不断弹出这个python3.7.3脚本来删除文件树中的文件,而不必滚动它们。
EN

Stack Overflow用户
提问于 2019-11-14 13:48:48
回答 1查看 32关注 0票数 0

我真的(两天)对这一切都不熟悉。我试图用python3.7.3脚本删除外部HD文件夹中的一堆文件,但是一个错误不断出现。

首先,这段代码运行良好,并找到了文件夹:

代码语言:javascript
复制
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)

但是,当我删除打印(文件名)删除散列时,无法删除文件夹,并弹出以下错误:

代码语言:javascript
复制
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(文件名) FileNotFoundError: WinError 2系统找不到指定的文件:'rootpractice.docx‘

“根实践”文档是明确的,但不会被删除。

有人知道我怎么能解决这个问题吗?任何帮助这个总初学者是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-14 14:00:18

os.unlink和其他类似的需要文件路径的方法希望获得一个相对于运行脚本的当前文件夹的链接(您可以通过os.getcwd()找到该链接),或者期望获得完整的路径。

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

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58858314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档