提问人:KirOFF 提问时间:10/14/2023 更新时间:10/14/2023 访问量:57
使用 Python 删除文件/文件夹时出现问题
Problem deleting files/folders using Python
问:
现在我坐下来制作一个 Python 程序来清理我 PC 上的垃圾。一切都会好起来的,但出现了一个问题。 事实是,我无法从配置文件的“Temp”文件夹中删除文件(顺便说一下,这是需要从中删除文件的第一个文件夹)。
起初我试着这样做:
os.system(f'cd C:/Users/{current_user}/AppData/Local/Temp')
os.system(f'del /s /q *')
然而,它不仅不起作用,我突然几乎杀死了我的笔记本电脑,因为出于某种原因,删除文件的命令不是扩展到特定文件夹,而是扩展到整个磁盘。
我第二次做这个代码:
os.system(f'cd C:/Users/{current_user}/AppData/Local/Temp')
os.remove(f'C:/Users/{current_user}/AppData/Local/Temp/')
但是在命令行中运行它(当时在管理员模式下启用)后,显示以下错误:
Traceback (most recent call last):
File "C:\Users\Home\PycharmProjects\mainProject\GlowClean.py", line 46, in <module>
easy_clean()
File "C:\Users\Home\PycharmProjects\mainProject\GlowClean.py", line 42, in easy_clean
os.remove(f'C:/Users/{current_user}/AppData/Local/Temp/')
PermissionError: [WinError 5] Отказано в доступе: 'C:/Users/Home/AppData/Local/Temp/'
翻译:“Отказано в доступе”翻译为“访问被拒绝”
我可能犯了什么错误?为了获得更详细的答案,我什至准备在这篇文章中插入完整的程序代码。
附言不要严厉地评判我,因为我不知道显而易见的事情,我还是 Python 的新手。
答:
我可能犯了什么错误?
你的第一个错误是试图用于这个目的。Python 具有用于操作文件和文件夹的内置函数,以及一些不错的第三方模块。使用它们(稍后会详细介绍)。os.system()
使用 时,需要注意每个调用都在其自己的独立 shell 上下文中执行指定的命令。其中的含义是,如果您访问不同的工作目录或修改环境变量,则这些更改仅对您在该调用中运行的命令可见。因此,您的os.system()
cd
os.system()
os.system(f'cd C:/Users/{current_user}/AppData/Local/Temp') os.system(f'del /s /q *')
在功能上等同于
os.system(f'del /s /q *')
独自。这不太可能是你想要的。它实际尝试删除的内容取决于主机的工作目录。python
就您的第二次尝试而言,同样,使用更改工作目录是没有意义的,但本质上并没有错误。这里的问题是os.system()
os.remove()
仅适用于常规文件,不适用于目录os.rmdir()
是目录的模拟,但它仅适用于空目录。- 要删除整个目录树,可以使用 ,但是
shutil.rmtree()
- 你不想这样做。 包含当时可能正在运行的所有内容的临时文件。盲目删除其内容是不安全的,在任何情况下都不应删除文件夹本身。
C:/Users/{current_user}/AppData/Local/Temp/
{current_user}
评论
下一个:如何从其他文件夹导入依赖项?
评论
os.system()
os.system()