递归删除某一文件夹下某一后缀名的所有文件,包括嵌套文件(例如删除.cfg文件)
有时候我的电脑中会莫名生成很多.cfg文件,一个一个的删除太繁琐了,所有就写了这个函数。当然这个函数的功能不止删除.cfg后缀的文件,其他后缀名的也可以删除,即使这个文件在文件夹中有多层嵌套。
函数功能:
- 彻底删除某一文件夹下的特定后缀名的所有文件;
- 特定后缀的文件放在多级目录中,只需指定最上层目录即可;
- 文件嵌套层数过多,运行时间会变长;
- 仅删除特定后缀的文件,不会删除其他后缀文件;
使用时需谨慎!!!删除后的文件不能在回收站找回!!!
函数源码如下:
def del_suffix(path, del_file_suffix):
"""
删除指定文件夹下的所有指定后缀的文件,包括嵌套文件中的指定后缀的文件
:param path: 指定文件夹
:param del_file_suffix: 欲删除文件后缀名
:return: None
"""
import os
for cur_file in os.scandir(path):
f_name = path + '\\' + str(cur_file.name) # 补全文件路径
if cur_file.is_file() and cur_file.name[-1 * len(del_file_suffix):] == del_file_suffix: # 删除文件后缀为.del_suffix的文件
os.remove(f_name)
if cur_file.is_dir(): # 递归调用del_suffix函数
del_suffix(f_name, del_file_suffix)
# path为指定目录,del_file_suffix为指定想要删除的文件后缀名
del_suffix(path, del_file_suffix)
# 例如:删除CSDN目录下的所有txt文件
del_suffix(r'C:\Users\NH4NO3nice\Desktop\CSDN', 'txt')
注意
: 函数使用时,后缀名不需要加.