如何解决为什么 os.listdir 在我将其设置到目录时显示到文件?
所以,我正在制作一个 python 项目来删除目录中的文件和我的 代码是:
tmp_dir = r"C:\Users\User\AppData\Roaming\Microsoft\Teams\tmp"
tmp_list = os.listdir(tmp_dir)
for tmp_files in tmp_list:
shutil.rmtree(os.path.join(tmp_dir,tmp_files))
我收到以下错误:
回溯(最近一次调用最后一次):文件“
进程以退出代码 1 结束
你能告诉我我的代码有什么问题吗?任何帮助表示赞赏。
解决方法
shutil.rmtree
deletes an entire directory tree。
要删除单个文件,您可以使用 os.remove
。
os.listdir
返回给定路径中的所有文件和目录。如果要删除所有目录,可以使用 os.path.isdir
进行过滤,然后仅删除目录。
您可以尝试使用此代码获取给定文件夹中的所有目录:
tmp_list = [d for d in os.listdir(tmp_dir) if os.path.isdir(os.path.join(tmp_dir,d))]
,
os.listdir 列出文件和文件夹
您正在执行的 rmtree 仅适用于文件夹
所以当迭代到达一个文件时,它会出错
对于文件夹和文件,你需要做这样的事情
for temp_files in temp_list :
if temp_files.isdir():
shutil.rmtree(os.path.join(tmp_dir,tmp_files))
else :
os.remove("file path/filename")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。