在python的开发过程中,我们经常需要创建、删除和修改文件。其中,删除文件这一功能在有些情况下显得尤为重要。Python 3中提供了删除文件的实现方法, 本文将围绕
Python 3删除文件的实现方法
这一主题,从多个方面进行详细阐述。
一、os模块实现删除文件
os模块(即操作系统模块)是python基础库中提供的对操作系统进行访问接口的模块。os模块提供了很多操作文件的方法,其中之一就是删除文件的方法。
import os
try:
os.remove('file_path')
except Exception as e:
print(str(e))
使用os.remove()
可以删除指定路径下的文件。上述代码中的'file_path'
需要被用户指定为要删除的文件的路径。此外,为了防止意外删除,我们在删除操作外部使用try...except
语句来捕捉异常。
二、shutil模块实现删除文件
shutil(即shell utility)模块是python的高级文件操作模块,可以实现文件的复制、移动、删除、重命名等操作。如果你需要后续处理多个文件,那么使用shutil模块删除文件可能是更好的选择。
import shutil
try:
shutil.rmtree('dir_path')
except Exception as e:
print(str(e))
执行shutil.rmtree()
方法,即可递归删除指定目录下的所有文件和文件夹。需要被删除的文件或文件夹路径需要被用户指定。
三、使用pathlib模块实现删除文件
pathlib模块是python新引入的模块,可用于文件系统路径和文件查找、操作。
import pathlib
my_file_path = pathlib.Path("file_path")
if my_file_path.is_file():
try:
my_file_path.unlink()
except Exception as e:
print(str(e))
elif my_file_path.is_dir():
try:
shutil.rmtree(str(my_file_path))
except Exception as e:
print(str(e))
else:
print("Path does not exist.")
上述代码中,先创建一个Path
变量my_file_path
,并将要删除的文件路径传递给它。按照前面的两种方式,使用is_file()
方法判断my_file_path
是否是文件,如果是,使用unlink()
方法删除;如果my_file_path
是一个目录,则使用shutil.rmtree()
方法。
四、删除指定扩展名的文件
当我们需要一次性删除指定扩展名的多个文件时,可以使用glob模块实现。
import glob, os
files = glob.glob('/path/*.txt') # 匹配目录下所有txt文件
for f in files:
os.remove(f)
以上示例代码中,glob.glob()
方法用来获取指定目录下所有扩展名为.txt
的文件。之后,使用os.remove()
方法依次删除所匹配的文件。当然了,如果要删除其他类型的文件(例如.png
、.jpg
等),只需在.glob()
中进行修改即可。
总结
删除文件是一个很常用的操作,本文介绍了Python 3中三种实现删除文件的方法:os
模块、shutil
模块和pathlib
模块。同时,我们还介绍了一种可以删除特定类型文件的方法——使用glob
模块。读者可根据需要进行选择,选择最适合自己需求的目录删除方式。