当前位置:嗨网首页>书籍在线阅读

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) 代码行的注释。然后再次运行该程序,实际删除这些文件。