python 如何删除文件夹下的所有文件和子文件夹?
删除文件夹下的所有的文件,以及子文件下所有的文件,把这个文件夹全部删除。shutil.rmtree() 删除先介绍一个最简单的方法,shutil.rmtree()
·
前言
删除文件夹下的所有的文件,以及子文件下所有的文件,把这个文件夹全部删除。
shutil.rmtree() 删除
先介绍一个最简单的方法,shutil.rmtree()
shutil.rmtree('D:\\test', ignore_errors=True)
删除 D:\test 目录下全部文件,并且忽略错误
os模块递归删除
可以通过os模块,自己写个递归删除
def delete_dir_file(dir_path):
"""
递归删除文件夹下文件和子文件夹里的文件,不会删除空文件夹
:param dir_path: 文件夹路径
:return:
"""
if not os.path.exists(dir_path):
return
# 判断是不是一个文件路径,并且存在
if os.path.isfile(dir_path) and os.path.exists(dir_path):
os.remove(dir_path) # 删除单个文件
else:
file_list = os.listdir(dir_path)
for file_name in file_list:
delete_dir_file(os.path.join(dir_path, file_name))
# 递归删除空文件夹
if os.path.exists(dir_path):
os.rmdir(dir_path)
if __name__ == '__main__':
delete_dir_file('./data')
上面代码删除的时候,如果想保留我们文件夹以及子文件夹,仅仅只删除文件,可以去掉这句
# 递归删除空文件夹
if os.path.exists(dir_path):
os.rmdir(dir_path)
还有另外一种实现方式
def delete_dir2(dir_path):
# os.walk会得到dir_path下各个后代文件夹和其中的文件的三元组列表
for root, dirs, files in os.walk(dir_path, topdown=False):
print(root) # 文件夹绝对路径
print(dirs) # root下一级文件夹名称列表,如 ['文件夹1','文件夹2']
print(files) # root下文件名列表,如 ['文件1.xx','文件2.xx']
# 第一步:删除文件
for name in files:
os.remove(os.path.join(root, name)) # 删除文件
# 第二步:删除空文件夹
for name in dirs:
os.rmdir(os.path.join(root, name)) # 删除一个空目录
# 加这段代码,最外层文件夹也一起删除
if os.path.exists(dir_path):
os.rmdir(dir_path)
delete_dir2('data')
如果需要把最外层目录一起删除,可以加上这句
# 加这段代码,最外层文件夹也一起删除
if os.path.exists(dir_path):
os.rmdir(dir_path)
使用 pathlib 模块实现
os模块现在很少用了,用 pathlib 模块替换os 模块相关代码
def delete_dir_file(dir_path):
"""
递归删除文件夹下文件和子文件夹里的文件,不会删除空文件夹
:param dir_path: 文件夹路径
:return:
"""
p = Path(dir_path)
if not p.exists():
return
# 判断是不是一个文件路径,并且存在
if p.is_file() and p.exists():
p.unlink() # 删除单个文件
else:
for file_name in p.iterdir():
# 递归删除文件
delete_dir_file(file_name)
# 递归删除空文件夹
if p.exists():
p.rmdir()
if __name__ == '__main__':
delete_dir_file('./data')
行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
更多推荐
已为社区贡献12条内容
所有评论(0)