如何使用 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 中实现 touch 文件
- 在 Python 中逐行读取 CSV