python删除指定目录下文件和文件夹

Python评论598阅读模式

在日常的办公中,我们可以利用Python批量删除文件和文件夹,但一定要注意这一过程的不可逆转性,因此在操作前一定要做好备份。
下面我们来介绍两种执行遍历、筛选和删除的两种方法。主要采用的是os模块和pathlib模块。删除文件时,我们采用的是os.remove(),删除目录我们用的是shutil.rmtree()

一、os删除法
我们可以用os模块中的listdir()来遍历目录下面的文件,如果是当前目录就用path = os.curdir来指定,然后用shutil来删除,非常简单、实用和方便。文章源自爱尚资源教程网-https://www.23jcw.net/9478.html

算法过程是,首先构造函数,检查指定目录是否为空,如果不为空,使用OS和迭代删除的方法,删除test目录下的所有目录和文件,代码如下:文章源自爱尚资源教程网-https://www.23jcw.net/9478.html

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()删除目录.文章源自爱尚资源教程网-https://www.23jcw.net/9478.html

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中的三元运算符一行代码就搞定,可以进一步优化代码。文章源自爱尚资源教程网-https://www.23jcw.net/9478.html 文章源自爱尚资源教程网-https://www.23jcw.net/9478.html

相关文章
版权声明:文章图片资源来源于网络,如有侵权,请留言删除!!!
  • 温馨提示:如遇到资源下载不了,或者文章没有解决你的问题的,可以联系我们帮你处理!!!
  • 转载请务必保留本文链接:https://www.23jcw.net/9478.html

发表评论