05-永久删除文件和文件夹
10.1.3 永久删除文件和文件夹
利用 os
模块中的函数,可以删除一个文件或一个空文件夹。利用 shutil
模块,可以删除一个文件夹及其所有的内容。
- 调用
os.unlink(path)
将删除path
处的文件。 - 调用
os.rmdir(path)
将删除path
处的文件夹。该文件夹必须为空,其中不能有任何文件和文件夹。 - 调用
shutil.rmtree(path)
将删除path
处的文件夹,它包含的所有文件和文件夹都会被删除。
在程序中使用这些函数时要小心。可以在第一次运行程序时注释掉这些调用,并且加上 print()
调用,显示会被删除的文件。这样做是一个好方法。下面有一个Python程序,本来打算删除具有.txt扩展名的文件,但有一处录入错误(用粗体突出显示),结果导致它删除了.rxt文件:
import os
from pathlib import Path
for filename in Path.home().glob('*.rxt'):
os.unlink(filename)
如果你有某些文件以.rxt结尾,它们就会被永久地删除。作为替代,你应该先运行像这样的程序:
import os
from pathlib import Path
for filename in Path.home().glob('*.rxt'):
#os.unlink(filename)
print(filename)
现在 os.unlink()
调用被注释掉,因此Python会忽略它。作为替代,输出将被删除的文件名。先运行这个版本的程序,你就会知道,你不小心告诉程序要删除.rxt文件,而不是.txt文件。
在确定程序按照你的意图工作后,删除 print(filename)
代码行,取消 os.unlink(filename)
代码行的注释。然后再次运行该程序,实际删除这些文件。