Python实现递归遍历文件夹并删除文件

请参考下方的攻略:

Python实现递归遍历文件夹并删除文件

在Python中实现递归遍历文件夹,可以使用os模块提供的os.walk()函数。该函数可遍历指定目录下的所有子目录,使用者可以在回调函数中进行相应的操作,例如删除文件。

os.walk()函数

os.walk()函数用于通过递归遍历文件夹获取目标目录下的所有子目录、文件名及文件夹名。其语法如下:

for root, dirs, files in os.walk(top, topdown=True, onerror=None, followlinks=False):
    #root:当前遍历的根目录
    #dirs:当前根目录下的子目录,列表形式
    #files:当前根目录下的文件,列表形式
    #top:要遍历的目标目录
    #topdown:定义遍历的顺序,为True时表示首先遍历top下的目录,后遍历其子目录;为False时相反
    #onerror:定义遍历过程中发生错误的处理方式
    #followlinks:定义是否要遍历符号链接指向的路径

实现递归遍历并删除文件的步骤

  1. 使用os.walk()函数获取目标目录下的所有子目录、文件名及文件夹名。
  2. 对于每个子目录及文件,判断是否是目标需要删除的文件,如果是,则删除。
  3. 对于每个子目录,在当前子目录中递归调用以上两个操作,直到遍历完所有文件夹及文件。

以下是一个示例:

import os

def remove_files_by_suffix(root, suffix):
    for dir_path, dir_names, file_names in os.walk(root):
        for file_name in file_names:
            if file_name.endswith('.' + suffix):
                file_path = os.path.join(dir_path, file_name)
                os.remove(file_path)
                print("文件已删除:", file_path)

        for dir_name in dir_names:
            remove_files_by_suffix(os.path.join(dir_path, dir_name), suffix)

以上示例中,remove_files_by_suffix函数接收两个参数,分别为根目录root和要删除文件的后缀名suffix,并按照以上步骤实现递归遍历及删除文件的操作。

remove_files_by_suffix("D:/test", "txt")

以上代码将会删除目标目录"D:/test"及其子目录中所有后缀名为"txt"的文件,执行结果将在控制台输出被删除的文件路径。

另一个示例

以下是一个更复杂的示例,它将递归删除指定后缀名的文件,在删除之前提示用户确认是否删除,保证操作的安全性。

import os

def remove_files_by_suffix(root, suffix):
    for dir_path, dir_names, file_names in os.walk(root):
        for file_name in file_names:
            if file_name.endswith('.' + suffix):
                file_path = os.path.join(dir_path, file_name)

                #确认用户是否需要删除该文件
                answer = input("确认删除文件%s吗?(y/n):" % file_path)
                if answer.lower() == 'y':
                    os.remove(file_path)
                    print("文件已删除:", file_path)
                else:
                    print("文件未删除:", file_path)

        for dir_name in dir_names:
            remove_files_by_suffix(os.path.join(dir_path, dir_name), suffix)

以上示例中,用户可通过输入y或n确认是否删除目标文件,防止误删重要文件。

总结

以上就是基于Python实现递归遍历文件夹并删除文件的攻略。使用os.walk()函数可以便捷地遍历目标目录下的所有文件和文件夹,通过递归及条件判断实现文件的删除操作,可根据需求进行相应的改动。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现递归遍历文件夹并删除文件 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • python属于解释型语言么

    Python是一种高级编程语言,被广泛用于许多应用程序和网站的开发。关于Python是否是解释型语言,有一些争议。以下是对这个问题的详细分析。 什么是解释型语言? 解释型语言是一种程序设计语言,其源代码不需要直接编译,而是由解释器解释并执行。解释器逐行读取代码,将其翻译成计算机可执行的指令。每次程序运行时,解释器都会重新解释源代码。 相比而言,编译型语言需要…

    python 2023年6月5日
    00
  • python实现简易五子棋游戏(控制台版)

    下面是详细的攻略: python实现简易五子棋游戏(控制台版) 本文将介绍如何通过Python语言实现一个简易的五子棋游戏,主要使用Python基础语法和标准库函数,适合初学者或想进一步熟悉Python语法的人。游戏使用控制台进行展示,不涉及图形界面。 思路与实现 初始化棋盘 棋盘的使用采用二维列表来实现,棋盘大小为15*15,每格状态用0、1、2表示,0为…

    python 2023年5月19日
    00
  • python 使用 requests 模块发送http请求 的方法

    在Python中,requests模块是一个常用的HTTP客户端库,可以用于发送HTTP请求和处理HTTP响应。requests模块提供了多个函数,用于发送不同类型的HTTP请求。以下是详细讲解Python使用requests模块发送HTTP请求的方法的攻略,包含两个例。 发送GET请求 发送GET请求是最常见的HTTP请求之一。可以使用requests模块…

    python 2023年5月15日
    00
  • 结合一维和二维的NumPy数组

    NumPy是Python的一个常用科学计算库,提供了创建、处理多维数组的功能。其中,一维数组是最简单的数组,它可以看作是具有相同数据类型的一串数据集合。二维数组则是由多个一维数组组成的二维矩阵,它也被称作二维张量。结合一维和二维的NumPy数组,可以方便地进行数据处理和分析。下面将根据具体需求,给出一些处理步骤和示例说明。 创建数组 在NumPy中,可以使用…

    python-answer 2023年3月25日
    00
  • Python shapefile转GeoJson的2种方式实例

    下面将详细讲解“Python shapefile转GeoJson的2种方式实例”的完整攻略。 1. 背景介绍 在GIS领域中,Shapefile和GeoJson是两种常用的数据格式。Shapefile是一种矢量数据格式,常用于表示地图上的点、线、面等要素;而GeoJson是一种开放标准的数据格式,是JSON的一种扩展格式,用于表示地图上的空间信息。在GIS应…

    python 2023年6月3日
    00
  • python把转列表为集合的方法

    在Python中,可以使用set()函数将列表转换为集合。集合是一种无序、不重复的数据结构,可以用于去重、交集、并集操作。下面是两个示例,演示如何将列表转换集合。 示例1:使用set()函数将列表转换为集合 my_list = [1, 2, 3, 2,1, 4, 5, 4] my_set = set(my_list) print(my_set) # 输出:{…

    python 2023年5月13日
    00
  • python基础之入门必看操作

    Python基础之入门必看操作 Python是一种高级编程语言,易于学习和使用。本文将介绍Python的基础操作,包括变量、数据类型、运算符、条件语句、循环语句、函数模块等内容。本文旨在帮助初学者快速入门Python编程。 变量 在Python中,变量是用于存储的容器。变量可以存储不同类型的数据,例如整数、浮点数、字符串等。以下是一个示例,演示如何定义量: …

    python 2023年5月13日
    00
  • python利用requests库模拟post请求时json的使用教程

    以下是关于Python利用requests库模拟POST请求时JSON的使用教程: Python利用requests库模拟POST请求时JSON的使用教程 在Python中,requests是一个流行的HTTP库,可以用于向Web发送HTTP请求和接响应。在模拟POST请求时,我们可以使用JSON格式的数据来传递参数。以下是Python利用requests库…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部