Python利用递归和walk()遍历目录文件的方法示例

yizhihongxing

Python是一门非常强大的程序设计语言,在文件处理方面也有很好的库和函数。在Python中使用递归和walk()遍历目录文件是一种常见的方法,可以在文件管理、数据抓取等场合中使用。

一、什么是递归和walk函数

递归

递归是指函数自身调用自身,通过不断地自我调用来解决问题的一种思想。在Python中,可以轻松实现递归函数的编写,例如:

 def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

这个函数用来计算阶乘,基于递归思想,如果n大于0,则调用函数自身,并将n-1传入函数生成新的运算。

walk()

walk()函数是os模块提供的一个目录遍历函数,可以遍历指定的目录和子目录,返回一个三元组(root, dirs, files),其中root是指当前遍历的目录路径,dirs是子目录名称集合,files是指当前目录下的文件名称集合。示例代码如下:

import os
file_path = os.walk(r'C:\Users\Administrator\Desktop') # 将目录路径传递给walk函数遍历
for root, dirs, files in file_path:
    print(root) # 输出当前遍历的目录路径
    print(dirs) # 输出子目录名称
    print(files) # 输出当前目录下的文件名称

二、使用递归和walk()遍历目录文件

  1. 递归遍历并输出指定目录下所有文件的路径

下面代码中实现递归遍历并输出指定目录下所有文件的路径:

import os

def print_file_path(file_dir):
    for root, dirs, files in os.walk(file_dir):
        for file in files:
            print(os.path.join(root, file)) # 输出文件路径
        for dir in dirs:
            print_file_path(os.path.join(root, dir)) # 递归遍历目录

print_file_path(r'C:\Users\Administrator\Desktop') # 下面是调用示例的代码
  1. 递归查找指定目录下的所有以.txt结尾的文件,并将文件路径存入txt文本中

下面代码中实现递归查找指定目录下的所有以.txt结尾的文件,并将文件路径存入txt文本中:

import os

def search_file(file_dir, file_type):
    with open(r'C:\Users\Administrator\Desktop\result.txt', mode='a', encoding='utf-8') as f:
        for root, dirs, files in os.walk(file_dir):
            for file in files:
                if file.endswith(file_type):
                    file_path = os.path.join(root, file)
                    f.write(file_path+'\n') # 将文件路径写入txt文本
            for dir in dirs:
                search_file(os.path.join(root, dir), file_type) # 递归遍历目录

search_file(r'C:\Users\Administrator\Desktop', '.txt') # 下面是调用示例的代码

以上是两个简单的使用递归和walk()遍历目录文件的方法示例,您可以根据自己的需求进行功能解读和代码编写,相信这些篇章能对你在此方面的研究工作有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python利用递归和walk()遍历目录文件的方法示例 - Python技术站

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

相关文章

  • python中关于eval函数的使用及说明

    可以的,下面就是对“python中关于eval函数的使用及说明”的详细讲解攻略。 什么是eval函数? Python中eval函数是一个十分有用的函数。它可以将字符串作为代码进行解析并执行。eval函数就是将字符串转换成Python表达式执行的函数。eval函数的语法格式如下: eval(expression[, globals[, locals]]) 参数…

    python 2023年6月6日
    00
  • Python 的字典(Dict)是如何存储的

    Python的字典是一种散列表的实现,它是一个无序的键值对集合,其中可以添加和删除键值对,字典中的键必须唯一且必须是不可变类型(如字符串、元组、数字等),值可以是任何类型,包括列表和其他字典。字典是Python的核心数据类型之一,在实际开发中经常使用。 字典的内部实现 字典的底层是由一个散列表(哈希表)实现的。散列表是一种根据键值直接访问内存位置的数据结构,…

    python 2023年5月13日
    00
  • opencv+python实现鼠标点击图像,输出该点的RGB和HSV值

    实现鼠标点击图像,输出该点的RGB和HSV值,需要用到OpenCV和Python。以下是完整攻略: 确定环境及安装依赖 首先需要确认本地环境已经安装好以下软件和库: Python3 OpenCV库 NumPy库 如果上述环境还没有安装,可以前往官网下载并安装。 打开终端窗口,使用pip命令安装OpenCV和NumPy库: pip install opencv…

    python 2023年5月18日
    00
  • Python3爬虫学习入门教程

    以下是Python3爬虫学习入门教程的完整攻略: 步骤1:安装requests库 在使用Python3进行爬虫之前,需要安装requests库。以下是一个示例代码: pip install requests 在这个例子中,我们使用pip命令安装了requests库。 步骤2:使用requests库获取网页内容 在完成安装requests库后,我们就可以使用r…

    python 2023年5月14日
    00
  • Python3爬虫之urllib携带cookie爬取网页的方法

    Python3爬虫之urllib携带cookie爬取网页的方法 对于需要登录的网站,我们需要在发送请求时携带cookie信息,才能够获取到网站的内容。在Python中,我们可以使用urllib库来发送网络请求,并在请求中携带cookie信息。 以下是使用urllib携带cookie进行爬取的完整攻略: 1、获取cookie 在发送请求时,我们需要先获取coo…

    python 2023年6月3日
    00
  • python使用sessions模拟登录淘宝的方式

    Python使用sessions模拟登录淘宝的方式 淘宝是一个常见的电商网站,我们可以使用Python来模拟登录淘宝并获取数据。在模拟登录淘宝时,我们需要使用sessions来保持登录状态。本文将详细讲解如何使用Python使用sessions模拟登录淘宝,并提供两个示例。 环境配置 在使用Python模拟登录淘宝时,我们需要安装requests库。可以使用…

    python 2023年5月15日
    00
  • Python 完美解决 Import “模块“ could not be resolved …的问题

    当在Python中导入模块时,有时会遇到“ImportError: No module named ‘module_name’”或“ImportError: cannot import name ‘function_name’”等错误。这些错误通常是由于模块路径不正确或者模块名称拼写错误引起的。本攻略将提供Python完美解决“ImportError: ca…

    python 2023年5月13日
    00
  • python转换字符串为摩尔斯电码的方法

    Python转换字符串为摩尔斯电码的方法可以分为三个步骤: 定义字典 首先,我们需要创建一个字典,将每个字母对应的摩尔斯电码存储在其中。可以使用下面的代码创建一个摩尔斯电码字典: morse_code = {‘A’: ‘.-‘, ‘B’: ‘-…’, ‘C’: ‘-.-.’, ‘D’: ‘-..’, ‘E’: ‘.’, ‘F’: ‘..-.’, ‘G’:…

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