首页 > 编程语言 >python遍历目录获取上几层文件

python遍历目录获取上几层文件

时间:2023-02-27 11:57:56浏览次数:37  
标签:几层 PythonProjectTMP 遍历 python TMP 文本文档 WorkSpace txt 副本

功能:

python遍历目录,获取上N层的文件,例如获取第一层,第二层,第三层的文件。

代码

import os


def traverse_folders_by_layer(folder, layer=999, index=1, data=None):
    """
    提示: 当前目录是第一层 次级目录是第二次 依次类推
    :param folder: 要遍历的路径
    :param layer: 要遍历多少层
    :param index: 当前是第几层,默认第一层,使用时不需要传递该参数
    :param data: 存放遍历的结果
    :return:
    e.g:
    data = traverse_folders_by_layer(".", 1) 遍历至第1层
    data = traverse_folders_by_layer(".", 2) 遍历至第2层
    data = traverse_folders_by_layer(".", 3) 遍历至第3层
    data = traverse_folders_by_layer(".") 遍历至第999层,也可以理解为遍历当前目录所有子目录
    """
    if data is None:
        data = []
    folder = os.path.abspath(folder)
    if index > layer:
        return data
    info = os.listdir(folder)
    for name in info:
        path = os.path.abspath(os.path.join(folder, name))
        if os.path.isfile(path):
            data.append((index, path))
        else:
            data = traverse_folders_by_layer(path, layer, index + 1, data)
    return data


def main():
    for i in range(1, 7):
        data = traverse_folders_by_layer(".", i)
        print(f"第{i}层的文件信息是:")
        for one in data:
            print(one)
        print("\n")


if __name__ == '__main__':
    main()

验证

目录结构

image-20230227114324252

运行结果

F:\Python3.9.12\python.exe E:/WorkSpace/TMP/PythonProjectTMP/1/traverse_folder_floor.py
第1层的文件信息是:
(1, 'E:\WorkSpace\TMP\PythonProjectTMP\1\traverse_folder_floor.py')
(1, 'E:\WorkSpace\TMP\PythonProjectTMP\1\新建文本文档 - 副本.txt')
(1, 'E:\WorkSpace\TMP\PythonProjectTMP\1\新建文本文档.txt')

第2层的文件信息是:
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2\2.txt')
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2\新建文本文档.txt')
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\新建文本文档.txt')
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本 (2)\新建文本文档.txt')
(1, 'E:\WorkSpace\TMP\PythonProjectTMP\1\traverse_folder_floor.py')
(1, 'E:\WorkSpace\TMP\PythonProjectTMP\1\新建文本文档 - 副本.txt')
(1, 'E:\WorkSpace\TMP\PythonProjectTMP\1\新建文本文档.txt')

第3层的文件信息是:
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2\2.txt')
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2\新建文本文档.txt')
(3, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3\新建文本文档 - 副本.txt')
(3, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3\新建文本文档.txt')
(3, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3 - 副本\新建文本文档.txt')
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\新建文本文档.txt')
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本 (2)\新建文本文档.txt')
(1, 'E:\WorkSpace\TMP\PythonProjectTMP\1\traverse_folder_floor.py')
(1, 'E:\WorkSpace\TMP\PythonProjectTMP\1\新建文本文档 - 副本.txt')
(1, 'E:\WorkSpace\TMP\PythonProjectTMP\1\新建文本文档.txt')

第4层的文件信息是:
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2\2.txt')
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2\新建文本文档.txt')
(4, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3\4\新建文本文档.txt')
(4, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3\4 - 副本\新建文本文档 - 副本.txt')
(4, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3\4 - 副本\新建文本文档.txt')
(3, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3\新建文本文档 - 副本.txt')
(3, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3\新建文本文档.txt')
(3, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3 - 副本\新建文本文档.txt')
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\新建文本文档.txt')
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本 (2)\新建文本文档.txt')
(1, 'E:\WorkSpace\TMP\PythonProjectTMP\1\traverse_folder_floor.py')
(1, 'E:\WorkSpace\TMP\PythonProjectTMP\1\新建文本文档 - 副本.txt')
(1, 'E:\WorkSpace\TMP\PythonProjectTMP\1\新建文本文档.txt')

第5层的文件信息是:
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2\2.txt')
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2\新建文本文档.txt')
(4, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3\4\新建文本文档.txt')
(4, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3\4 - 副本\新建文本文档 - 副本.txt')
(4, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3\4 - 副本\新建文本文档.txt')
(3, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3\新建文本文档 - 副本.txt')
(3, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3\新建文本文档.txt')
(3, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3 - 副本\新建文本文档.txt')
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\新建文本文档.txt')
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本 (2)\新建文本文档.txt')
(1, 'E:\WorkSpace\TMP\PythonProjectTMP\1\traverse_folder_floor.py')
(1, 'E:\WorkSpace\TMP\PythonProjectTMP\1\新建文本文档 - 副本.txt')
(1, 'E:\WorkSpace\TMP\PythonProjectTMP\1\新建文本文档.txt')

第6层的文件信息是:
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2\2.txt')
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2\新建文本文档.txt')
(4, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3\4\新建文本文档.txt')
(4, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3\4 - 副本\新建文本文档 - 副本.txt')
(4, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3\4 - 副本\新建文本文档.txt')
(3, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3\新建文本文档 - 副本.txt')
(3, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3\新建文本文档.txt')
(3, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\3 - 副本\新建文本文档.txt')
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本\新建文本文档.txt')
(2, 'E:\WorkSpace\TMP\PythonProjectTMP\1\2 - 副本 (2)\新建文本文档.txt')
(1, 'E:\WorkSpace\TMP\PythonProjectTMP\1\traverse_folder_floor.py')
(1, 'E:\WorkSpace\TMP\PythonProjectTMP\1\新建文本文档 - 副本.txt')
(1, 'E:\WorkSpace\TMP\PythonProjectTMP\1\新建文本文档.txt')

进程已结束,退出代码0

标签:几层,PythonProjectTMP,遍历,python,TMP,文本文档,WorkSpace,txt,副本
From: https://www.cnblogs.com/rainbow-tan/p/17159158.html

相关文章

  • python基本绘图函数
    1.plot绘制线型图plot是python中最基本的绘制二维线性折线图的函数基本使用方式:plt.plot(x,y,s)代码实现:importmatplotlib.pyplotaspltimportnumpyasnpimportpa......
  • python+playwright 学习-14.导航page.goto(url) 详解
    前言Playwright可以导航到URL并处理由页面交互引起的导航。本篇涵盖了等待页面导航和加载完成的常见场景。导航生命周期导航从更改页面URL或通过与页面交互(例如,单......
  • python Numpy数组2.27
    #成员类型转换arr.astype(np.float_)#转换数组对象成员的类型为float,形状不变。#形状转换arr.resize(shape)#返回值是一个None,不能引用内部的属性arr.reshape(shape)#......
  • Python批量绘制遥感影像数据的直方图
      本文介绍基于Python中gdal模块,实现对大量栅格图像批量绘制直方图的方法。  首先,明确一下本文需要实现的需求:现需对多幅栅格数据文件进行依据其像元数值的直方图绘制......
  • python基本绘图函数学习
    1.plot绘制线型图plot是python中最基本的绘制二维线性折线图的函数基本使用方式:plt.plot(x,y,s)代码实现:importmatplotlib.pyplotaspltimportnumpyasnpimport......
  • Python变量与运算符一
    一、Python保留字符(33个)被编程语言内部定义并保留使用的标识符:and,as,assert,break,class,continue,def,del,elif,else,expect,finally,for,from,False,global,if,is,im......
  • Python基础语法与执行脚本的3种方式
    一、Pytnon特点什么是编程语言是用来定义计算机程序的形式语言。我们通过编程语言来编写程序代码,再通过语言处理程序执行向计算机发送指令,让计算机完成对应的工作。简单来说......
  • 大数据挖掘-python基本绘图函数学习
    1-plot绘制线型图plot是python中最基本的绘制二维线性折线图的函数基本使用方式:plt.plot(x,y,s)代码实现:importmatplotlib.pyplotaspltimportnumpyasnpimport......
  • python getattr动态调用方法
    classCC():defaa(self):print('aa')defbb(self):print('bb')CC=CC()getattr(CC,'aa',)() 传参classCC():defaa(self,aa)......
  • Python用于数据绘图
    importpandasaspdimportmatplotlib.pyplotasplt#导入绘图包plt.rcParams['font.sans-serif']=['SimHei']#解决中文显示问题plt.rcParams[......