os.walk用法 获取文件路径和文件名

2023-10-27

os.walk(top, topdown=True, οnerrοr=None, followlinks=False)
可以得到一个三元tupple(dirpath, dirnames, filenames),

第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。

dirpath 是一个string,代表目录的路径,

dirnames 是一个list,包含了dirpath下所有子目录的名字。

filenames 是一个list,包含了非目录文件的名字。

这些名字不包含路径信息,如果需要得到全路径,需要使用os.path.join(dirpath, name).

import os
path = 'D:\Test'
for root, dirs, files in os.walk(path):
    print("Root = ", root, "dirs = ", dirs, "files = ", files)

文件结构:
在这里插入图片描述

输出:


Root =  D:\Test 	dirs =  ['SubTest1', 'SubTest2'] 	files =  ['TEST DOCUMENT.docx', 'TEST.txt']
 
Root =  D:\Test\SubTest1 	dirs =  ['ThirdLayer'] 	files =  ['TEST DOCUMENT1.docx', 'TEST1.txt']
 
Root =  D:\Test\SubTest1\ThirdLayer 	dirs =  [] 	files =  ['TEST DOCUMENT L3.docx', 'TEST L3.txt']
 
Root =  D:\Test\SubTest2 	dirs =  [] 	files =  ['TEST DOCUMENT2.docx', 'TEST2.txt']

结果分析

1,先从根目录进行遍历,读取跟目录的文件夹和文件。

2,以根目录第一个子目录为新的根目录,读取其文件夹和文件。

3,再以2中的第一个子文件夹为根目录,读取文件夹和文件。(这个应该是属于树结构里面的自上而下深度遍历算法)

4,读取1步骤里面其他子目录的文件夹和文件。

其它说明:

  1. 文件的全路径: 从上面的结果可以看出,文件的全路径,应该是os.path.join(root, files)
  2. 如果你要数路径下有多少个文件夹,其实很简单就是所有的root数目-1,因为root数目包含path文件夹。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

os.walk用法 获取文件路径和文件名 的相关文章

  • FileHandler文件处理

    FileHandler文件处理 xff0c 实行文件从临时目录保存到正式目录 生成图片对象的缩略图 获取文件信息等功能 实例 xff1a 实现用户头像图片的保存 xff0c 并生成对象的缩略图 1 创建filehandler xml文件 在
  • CodeForces - 954C - Matrix Walk

    坑题 题目 xff1a CodeForces 954C 题意 矩阵的每一元素可以用 Ai j 61 y i 1 43 j 来表示 xff0c xff08 就是二维数组用一维指针表示的方法 xff09 xff0c 给你一个路径序列 xff0c
  • Go xml文件处理

    在开发中会常遇到xml数据序列化和反序列化 xff0c 这里我们介绍go语言处理xml数据 encoding xml 包实现了一个简单的xml 1 0解析器 xff0c 可以理解xml名称空间 读取xml 示例 xff1a package
  • php array_walk break跳出循环的方法

    场景分析解决 场景 array walk使用的地方不要太多 xff0c 在某种情况眷下需要它跳出循环 分析 break 不是array walk的关键字return 不能达到break的效果 相当于foreach的 continue 歪个楼
  • PCL- Las文件处理

    前言 在对点云数据处理的时候 xff0c 很多时候激光雷达扫描的文件不一定是 pcd文件 xff0c 这个时候需要进行相关文件处理 xff0c 如Las xff0c laz e57等文件格式 xff0c 本文将介绍las文件的读写 1 引入
  • os.walk用法 获取文件路径和文件名

    os walk top topdown True nerr r None followlinks False 可以得到一个三元tupple dirpath dirnames filenames 第一个为起始路径 第二个为起始路径下的文件夹
  • 在python3.6环境下使用os.walk遍历所有的中文文件夹,并且打印对应的地址(包括os.walk的语法)

    首先来看看文件夹的分布和文本内容 可以看到保险文件夹下有三个文件夹 每个文件夹中又包含许多TXT文本 所有代码如下 coding utf 8 import os for root dirs files in os walk r C User
  • Python 之os.walk()方法

    os walk方法 主要用来遍历一个目录内各个子目录和子文件 这个对于文件夹下遍历所有文件非常好用 对于数据处理也是很常见 os walk top topdown True nerr r None followlinks False 可以得
  • kettle开发-Day40-AI分流之case/switch

    前言 前面我们讲到了很多关于数据流的AI方面的介绍 包括自定义组件和算力提升这块的 今天我们来学习一个关于kettle数据分流处理非常重要的组件Switch Case 当我们的数据来源于类似日志 csv文件等半结构化数据时 我们需要在数据流
  • os.walk() ValueError:需要超过 1 个值才能解压

    好吧 我正在使用 Bioloid Premium 人形机器人 Mac OS X 无法识别它 因此 我编写了一个 Python 脚本来检测 dev 文件夹中的更改 因为基于 Linux 的系统上的任何连接仍然通过文件描述符给出引用 我的代码应
  • 仅压缩目录内容,排除父目录

    我正在尝试压缩目录的内容 而不压缩目录本身 但是我找不到明显的方法来做到这一点 而且我对 python 非常陌生 所以它对我来说基本上是德语 这是我正在使用的代码 它成功包含父级以及内容 usr bin env python import
  • 使用 os.walk 读取文件[重复]

    这个问题在这里已经有答案了 我正在尝试访问植根于主目录的子目录中的文件 为此 我正在使用os walk 我能够成功访问文件名并将其存储在列表中 但是 当我尝试使用打开这些文件时open filename r 我收到一条错误消息 告诉我不存在
  • 过滤 os.walk() 目录和文件

    我正在寻找一种方法来包含 排除文件模式并从os walk call 这就是我现在正在做的事情 import fnmatch import os includes doc odt excludes home paulo freitas Doc
  • Python中使用os.walk()递归遍历目录

    我想从根目录导航到其中的所有其他目录并打印相同的内容 这是我的代码 usr bin python import os import fnmatch for root dir files in os walk print root print
  • 在FTP服务器上扩展Python的os.walk功能

    我怎样才能使os walk遍历 FTP 数据库的目录树 位于远程服务器上 现在代码的结构方式是 提供注释 import fnmatch os ftplib def find pattern startdir os curdir find f
  • 在 os.walk() for 循环中使用 os.remove() 返回 FileNotFoundError

    我在 Anaconda 命令提示符中使用 Python 3 6 4 我有一个使用的函数os walk 循环遍历根目录中的所有可用文件 我的代码是 def apply to files pattern base regex re compil
  • os.walk 与正则表达式

    我想获取适用于我拥有的正则表达式的文件列表 我想我应该使用 os walk 但是我如何将它与正则表达式一起使用 Thanks 我不知道 stdlib 中有任何实现此功能的内容 但编码并不难 import os os path def ite
  • os.walk 在第一次找到后停止查找子目录

    我需要获取目录中第一次出现的repository config 文件并停止在子目录中查找 这是我的目录树 WAS80 base disk1 ad repository config WAS80 base disk1 md repositor
  • 按顺序对要上传的文件列表进行排序

    我的目标是让 python 使用 telegram upload 按升序将文件从设置的目录上传到 telegram 我的脚本似乎无法按顺序上传 它以随机顺序上传文件 我用过sorted功能无济于事 查看我的脚本 您可以看到我尝试过的一些事情
  • 递归深度有限的旅行目录树

    我需要递归地处理目录树中的所有文件 但深度有限 这意味着例如在当前目录和前两个子目录级别中查找文件 但不再进一步查找 在这种情况下 我必须处理例如 subdir1 subdir2 file 但不是 subdir1 subdir2 subdi

随机推荐