python删除指定目录下的文件和文件夹的实现
作者:PythonFun
在日常的办公中,我们可以利用Python批量删除文件和文件夹,本文就来介绍一下python删除指定目录下的文件和文件夹的实现,感兴趣的可以了解一下
在日常的办公中,我们可以利用Python批量删除文件和文件夹,但一定要注意这一过程的不可逆转性,因此在操作前一定要做好备份。
下面我们来介绍两种执行遍历、筛选和删除的两种方法。主要采用的是os模块和pathlib模块。删除文件时,我们采用的是os.remove(),删除目录我们用的是shutil.rmtree()
一、os删除法
我们可以用os模块中的listdir()来遍历目录下面的文件,如果是当前目录就用path = os.curdir来指定,然后用shutil来删除,非常简单、实用和方便。
首先了解几个关键方法:
os.getcwd()
该函数可以返回当前所在的目录。
files = os.getcwd() # files中保存的是当前的执行目录
os.path.splitext()
该函数可以分解文件名的扩展名。os.listdir(file_path)
该函数可以列出给定路径下的所有文件与文件夹。os.path.join(file_path, file_name)
该函数可以将路径与文件名拼接起来。os.path.isfile(path)
该函数可以判断指定的文件路径是否为文件。os.path.isdir(path)
该函数可以判断指定的路径是否为文件夹。os.remove(filename)
该函数可以删除指定路径的文件。
算法过程是,首先构造函数,检查指定目录是否为空,如果不为空,使用OS和迭代删除的方法,删除test目录下的所有目录和文件,代码如下:
import os import shutil def del_file(path): if not os.listdir(path): print('目录为空!') else: for i in os.listdir(path): path_file = os.path.join(path,i) #取文件绝对路径 print(path_file) if os.path.isfile(path_file): os.remove(path_file) else: del_file(path_file) shutil.rmtree(path_file) if __name__ == '__main__': path=r'test' del_file(path)
二、Pathlib删除法
pathlib是比os更加强大的一个模块。它可以执行遍历、删除等多项命令。
使用pathlib,shutil,删除更加快捷。unlink()删除文件,rmtree()删除目录,一气呵成。
import shutil from pathlib import Path def del_file(path): for elm in Path(path).glob('*'): print(elm) elm.unlink() if elm.is_file() else shutil.rmtree(elm) if __name__ == '__main__': path=r'test' del_file(path)
三、学后反思
1. pathlib中有很多不错的方法,如unlink, glob,replace等,灵活运用可以解决多项问题。
2. 如果pathlib用的不熟,可以把os学好可基本可以满足的日常需求。
3.使用过程中可以利用列表推导式,和python中的三元运算符一行代码就搞定,可以进一步优化代码。
到此这篇关于python删除指定目录下的文件和文件夹的实现的文章就介绍到这了,更多相关python删除指定目录文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!