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

 更新时间:2024年01月10日 09:39:47   作者: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删除指定目录文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python+opencv 实现图片文字的分割的方法示例

    Python+opencv 实现图片文字的分割的方法示例

    这篇文章主要介绍了Python+opencv 实现图片文字的分割的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • windows中安装Python3.8.0的实现方法

    windows中安装Python3.8.0的实现方法

    这篇文章主要介绍了windows中安装Python3.8.0的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Python如何实现邮件功能

    Python如何实现邮件功能

    在本篇文章里小编给大家分享的是关于Python实现邮件功能的方法,有需要的朋友们可以学习参考下。
    2020-05-05
  • django 简单实现登录验证给你

    django 简单实现登录验证给你

    这篇文章主要介绍了django 简单实现登录验证给你,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 一条命令解决mac版本python IDLE不能输入中文问题

    一条命令解决mac版本python IDLE不能输入中文问题

    本文通过一条命令帮助大家解决mac版本python IDLE无法输入中文问题,需要的朋友可以参考下
    2018-05-05
  • python实现三次样条插值

    python实现三次样条插值

    这篇文章主要为大家详细介绍了python实现三次样条插值,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • Python实现基于二叉树存储结构的堆排序算法示例

    Python实现基于二叉树存储结构的堆排序算法示例

    这篇文章主要介绍了Python实现基于二叉树存储结构的堆排序算法,结合实例形式分析了Python二叉树的定义、遍历及堆排序算法相关实现技巧,需要的朋友可以参考下
    2017-12-12
  • Python中利用sorted()函数排序的简单教程

    Python中利用sorted()函数排序的简单教程

    这篇文章主要介绍了Python中利用sorted()函数排序的简单教程,sorted()函数有返回值,在Python的排序实现中发挥着相当重要的作用,需要的朋友可以参考下
    2015-04-04
  • NumPy 通用函数(ufunc)的实现

    NumPy 通用函数(ufunc)的实现

    本文主要介绍了NumPy 通用函数(ufunc)的实现,包括数学运算类、统计与聚合类和数组操作类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-01-01
  • Python机器学习库sklearn(scikit-learn)的基础知识和高级用法

    Python机器学习库sklearn(scikit-learn)的基础知识和高级用法

    Scikit-Learn是 Python 最流行的机器学习库之一,它提供了各种工具来实现、评估和探索各种学习算法,用于,各种机器学习任务,在本教程中,我们将介绍 Scikit-Learn 的基础知识和一些高级用法,并提供一些实例代码来帮助我们更好地理解
    2023-07-07

最新评论