如何使用 Python 删除文件和文件夹
-
使用 Python 中的
os模块删除文件 -
在 Python 中使用
pathlib模块删除文件 - 在 Python 中用模式匹配删除文件
-
使用 Python
os模块删除文件夹 -
使用 Python
pathlib模块删除文件夹 -
使用 Python
shutil.rmtree方法删除非空文件夹
本文介绍了如何使用 Python 内置包如 os、pathlib 和 shutil 来删除文件和文件夹。
使用 Python 中的 os 模块删除文件
os 是一个内置模块,在 Python 2 和 Python 3 中都可以使用。
我们可以使用 os 模块中的 remove() 和 unlink() 来使用 Python 删除文件。这两个函数的作用是相似的。它们都把要删除的文件的路径作为参数。
import os
os.remove("test_dir/main.py")
它删除的文件名为 main.py,位于 test_dir 内。由于我们在这里使用的是相对路径,所以 test_dir 必须和我们的 Python 程序在同一个根文件夹下。我们也可以使用绝对文件路径。
import os
os.unlink("test_dir/main.py")
它也会删除位于 test_dir 内的名为 main.py 的文件。
这两个函数都只能删除文件。如果我们给出要删除的文件夹的路径,我们会得到 IsADirectoryError 错误。
同样,如果文件不存在于指定的路径中,我们会得到 FileNotFoundError。
如果我们没有删除文件的权限,我们会得到 PermissionError 错误。
为了在删除文件时处理这些错误,我们应该使用异常处理。
import os
try:
os.remove("test_dir/main.py")
except OSError as e:
print(f"Error:{ e.strerror}")
输出:
Error:No such file or directory
如果没有这样的文件,则会在输出中打印出错误,而不是让整个程序崩溃。
在 Python 中使用 pathlib 模块删除文件
为了使用 pathlib 模块删除文件,我们首先创建一个在 pathlib 模块中定义的 Path 对象。然后我们使用 unlink() 方法来删除文件。
from pathlib import Path
filePath = Path("test_dir/main.py")
try:
filePath.unlink()
except OSError as e:
print(f"Error:{ e.strerror}")
在这里,我们从 Path 类中实例化出 filePath 对象,其中包含要删除的文件的位置。
pathlib 模块只在 Python 3.4 及以上版本中可用。对于 Python 2,我们需要使用 pip 安装该模块。
在 Python 中用模式匹配删除文件
我们可以使用 glob 模块来匹配文件中的模式,在收集到所有符合模式的文件后,我们可以使用上面指定的任何方法删除所有的文件。
import os
import glob
py_files = glob.glob("test_dir/*.py")
for py_file in py_files:
try:
os.remove(py_file)
except OSError as e:
print(f"Error:{ e.strerror}")
这将删除 test_dir 文件夹下所有扩展名为 .py 的文件。
使用 Python os 模块删除文件夹
要用 Python 删除文件夹,我们可以使用 os、pathlib 和 shutlib 文件夹,os 和 pathlib 只能删除空文件夹,而 shutlib 也可以删除非空文件夹。os 和 pathlib 只能删除空文件夹,而 shutlib 也可以删除非空文件夹。
import os
dirPath = "test_dir"
try:
os.rmdir(dirPath)
except OSError as e:
print(f"Error:{ e.strerror}")
它删除了我们当前工作文件夹中的空文件夹 test_dir。
使用 Python pathlib 模块删除文件夹
如果文件夹是非空的文件夹不能用这个方法删除,我们就会从程序中得到错误输出- Error: Directory not empty。
我们也可以使用 pathlib 模块来删除非空文件夹。
from pathlib import Path
dirPath = Path("test_dir")
try:
dirPath.rmdir()
except OSError as e:
print(f"Error:{ e.strerror}")
它也会删除我们当前工作文件夹中的空文件夹 test_dir。
使用 Python shutil.rmtree 方法删除非空文件夹
要使用 Python 删除非空文件夹,我们使用 shutil 模块中的 rmtree 方法。
import shutil
dirPath = "test_dir"
try:
shutil.rmtree(dirPath)
except OSError as e:
print(f"Error:{ e.strerror}")
它删除了我们当前工作文件夹中的 test_dir 文件夹及其所有内容。
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn相关文章 - Python File
- Python 如何得到文件夹下的所有文件
- Python 如何查找具有特定扩展名的文件
- 如何在 Python 中从文件读取特定行
- 如何使用 Python 逐行写入文件
- 在 Python 中读取文本文件并打印其内容
- 在 Python 中实现 touch 文件
