如果你觉得这篇文章对你有帮助,希望你能点赞加关注。
许多编程语言都有内置处理文件和文件夹的功能。Python 作为一种功能丰富的编程语言,同样也不例外,内置了许多用于处理文件和文件夹的模块和函数。
利用 Python 提供的 OS 和 Pathlib 模块,我们可以非常方便地创建、编辑、读取和删除文件和文件夹。
通过本教程,我们将学会如何使用 Python 删除文件和文件夹。
使用 OS 模块删除文件
要使用 OS 模块删除任意文件,可以使用它的 remove() 方法。我们需要在 remove() 方法中指定要删除文件的路径和文件名。需要注意的是,要使用 OS 模块首先需要导入它。
下面的代码将删除当前文件夹中的 questions.py 文件:
import os
os.remove('questions.py')
如果删除的文件在其它文件夹中,则需要指定文件的完整路径,而不仅仅是文件名。
下面的代码向我们展示了如何删除 textFiles 文件夹中的 faq.txt 文件:
import os
os.remove('textFiles/faq.txt')
当我们试图删除一个不存在的文件时,Python 将抛出 FileNotFoundError 错误,并终止程序的执行。为了更好地处理这个问题,我们可以在删除文件之前先检查文件是否存在:
import os
# 指定要删除的文件路径
file_path = 'textFiles/faq.txt'
# 检查文件是否存在
if os.path.exists(file_path):
os.remove(file_path)
print('文件已删除')
else:
print('文件不存在')
当然,我们也可以使用 try..except 来改进上面的代码:
import os
try:
os.remove('textFiles/faq.txt')
print('文件已删除')
except:
print('文件不存在')
使用 Pathlib 模块删除文件
pathlib 是 Python 标准库中的一个模块,它提供了一种面向对象的方法来处理文件系统路径。我们同样也可以用它来处理文件。
pathlib 模块有一个 unlink() 方法,可以用来删除文件。我们首先需要用 pathlib.Path() 创建文件路径对象,然后在该文件路径对象上调用 unlink() 方法:
import pathlib
try:
file_path = pathlib.Path('textFiles/questions.txt')
file_path.unlink()
print('文件已删除')
except:
print('文件不存在')
使用 OS 模块删除空文件夹
OS 模块提供了一个 rmdir() 方法,使用该方法可以删除文件夹。
下面的代码向我们演示了如何删除空的 client 文件夹:
import os
try:
os.rmdir('client')
print('文件夹已删除')
except:
print('文件夹不存在')
如果尝试删除非空文件夹,就会出现 Directory not empty error 错误。
使用 Pathlib 模块删除空文件夹
通过使用 pathlib 模块删除空文件夹,我们首先需要使用待删除文件夹的路径创建一个 Path 对象,然后在该 Path 对象上调用 rmdir() 方法来删除它:
import pathlib
try:
folder_path = pathlib.Path('docs')
folder_path.rmdir()
print('文件夹已删除')
except:
print('文件夹不存在')
使用 shutil 模块删除非空文件夹
要删除一个非空文件夹,我们首先必须递归地删除文件夹中的所有文件和子文件夹,然后再删除该文件夹本身。不过,我们可以使用 shutil 模块来简化这一操作。
shutil 模块有一个 rmtree() 方法,可以用来删除非空文件夹。
假设当前目录中有一个名为 textFiles 文件夹,它有几个文件和一个子文件夹。下面的代码演示了如何使用 rmtree() 方法删除该文件夹:
import shutil
try:
shutil.rmtree('textFiles')
print('已删除文件夹及其内容')
except:
print('无法删除文件夹')
结语
本文介绍了如何使用 Python 的 os 和 pathlib 模块删除文件和空文件夹的,以及如何使用 shutil 模块删除非空文件夹。