python中的os.walk函数的用法

2023-11-01

转自http://blog.csdn.net/bagboy_taobao_com/article/details/8938126

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).

通过for循环自动完成递归枚举

例如:

F:\aaa 目录是这样的文件目录结构

F:\aaa

|--------1.txt

|--------2.txt

|--------3.txt

|--------4

         |-------5.txt

         |-------6.txt

         |-------7.txt


  1. #!/usr/bin/env python  
  2. # 2.py  
  3. # use UTF-8  
  4. # Python 3.3.0  
  5.   
  6. # os.walk()的使用  
  7. import os  
  8.   
  9. # 枚举dirPath目录下的所有文件  
  10.   
  11. def main():  
  12. #begin  
  13.     fileDir = "F:" + os.sep + "aaa"     # 查找F:\aaa 目录下    
  14.     for root, dirs, files in os.walk(fileDir):  
  15.     #begin  
  16.         print(root)  
  17.         print(dirs)  
  18.         print(files)  
  19.     #end  
  20.     os.system("pause")  
  21. #end  
  22.   
  23. if __name__ == '__main__':  
  24. #begin  
  25.     main()  
  26. #end  
  27.   
  28.   
  29. # 输出  
  30. # F:\aaa  
  31. # ['4']  
  32. # ['1.txt', '2.txt', '3.txt']  
  33. # F:\aaa\4  
  34. # []  
  35. # ['5.txt', '6.txt', '7.txt']  

你也可以这样
  1. #!/usr/bin/env python  
  2. # 3.py  
  3. # use UTF-8  
  4. # Python 3.3.0  
  5.   
  6. # os.walk()的使用  
  7. import os  
  8.   
  9. # 枚举dirPath目录下的所有文件  
  10.   
  11. def main():  
  12. #begin  
  13.     fileDir = "F:" + os.sep + "aaa"     # 查找F:\aaa 目录下    
  14.     for a in os.walk(fileDir):  
  15.     #begin  
  16.         print(a[0])  
  17.         print(a[1])  
  18.         print(a[2])  
  19.     #end  
  20.     os.system("pause")  
  21. #end  
  22.   
  23. if __name__ == '__main__':  
  24. #begin  
  25.     main()  
  26. #end  
  27.   
  28.   
  29. # 输出  
  30. # F:\aaa  
  31. # ['4']  
  32. # ['1.txt', '2.txt', '3.txt']  
  33. # F:\aaa\4  
  34. # []  
  35. # ['5.txt', '6.txt', '7.txt']  

通过for循环即可完成目录的递归.


你还可以这样

  1. #!/usr/bin/env python  
  2. # 2.py  
  3. # use UTF-8  
  4. # Python 3.3.0  
  5.   
  6. # os.walk()的使用  
  7. import os  
  8.   
  9. # 枚举dirPath目录下的所有文件  
  10.   
  11. def main():  
  12. #begin  
  13.     fileDir = "F:" + os.sep + "aaa"     # 查找F:\aaa 目录下    
  14.     for root, dirs, files in os.walk(fileDir):  
  15.     #begin  
  16.         for dir in dirs:  
  17.         #begin  
  18.             print(os.path.join(root, dir))  
  19.         #end  
  20.         for file in files:  
  21.         #begin  
  22.             print(os.path.join(root, file))  
  23.         #end  
  24.     #end  
  25.     os.system("pause")  
  26. #end  
  27.   
  28. if __name__ == '__main__':  
  29. #begin  
  30.     main()  
  31. #end  
  32.   
  33.   
  34. # 输出  
  35. # F:\aaa\4  
  36. # F:\aaa\1.txt  
  37. # F:\aaa\2.txt  
  38. # F:\aaa\3.txt  
  39. # F:\aaa\4\5.txt  
  40. # F:\aaa\4\6.txt  
  41. # F:\aaa\4\7.txt 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python中的os.walk函数的用法 的相关文章

  • Vue常规表单校验规则与自定义表单校验

    在Vue中因为新增属性所以表单校验不用像以往需要在各种 if 或 swith 判断 在form标签中通过 rules 属性绑定 data 中定义的表单校验规则来进行加载 然后给各个 input 标签添加 prop 属性来绑定不同的表单校验规
  • 存储单位bit、byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB、CB、XB

    1 bit binary digit 比特 这是表示信息的最小单位 它只能表示 0 或 1 2 byte 字节 其表示的值范围是0 255 无符号 或 127 127 有符号 1 byte 8 bit 一个英文字母1字节 一个汉字需要2字节
  • Camera和Image sensor技术基础笔记(1) -- 光和CCD/CMOS sensor基础知识

    光 首先来看看可见光在电磁波谱里的位置 光在电磁波谱里的范围是非常窄的 一般人的眼睛能感知的电磁波的频率在380 750THz 波长在780 400nm之间 但有些人能够感知到频率大约在340 790THz 波长大约在880 380nm之间
  • Docker read connection reset by peer

    Docker read connection reset by peer 在docker pull 拉去镜像时会出现报错 报错的末尾出现了read connection reset by peer的报错内容可能出现的情况是docker设置的
  • 【Matlab】基于Lasso回归的数据回归预测(Excel可直接替换数据)

    Matlab 基于Lasso回归的数据回归预测 Excel可直接替换数据 1 模型原理 2 文件结构 3 绘图 4 代码及注释 1 模型原理 Lasso回归原理概述如下 Lasso回归是一种线性回归方法 它在损失函数中加上了一个L1正则项
  • 在vscode中配置git bash终端

    将以下配置添加到vscode中的settings json中 terminal integrated profiles windows PowerShell source PowerShell icon terminal powershel
  • mock技术在测试中的应用

    技术简介 mock技术又叫测试桩 挡板 在软件测试中 对于一些不容易构造 获取的对象 用一个虚拟的对象来代替它 以达到相同的效果 这个虚拟的对象就是mock mock技术并不是只有测试领域用 最早是在开发领域应用 典型例子 前后端联调 比如
  • Flutter关于StatefulWidget中State刷新时机的一点实用理解

    刚入门flutter开发 使用StatefulWidget踩了很多坑 就我遇到典型问题谈谈见解 1 initState方法只会在控件初始化的时候执行一遍 2 控件内部执行setState方法 则会每次执行build方法 3 控件销毁会执行d
  • 时间格式yyyyMMddHHmmss的大小写,和字母含义

    字母 日期或时间元素 表示 示例 G Era 标志符 Text AD y 年 Year 1996 96 M 年中的月份 Month July Jul 07 w 年中的周数 Number 27 W 月份中的周数 Number 2 D 年中的天
  • c++:引用 (**)

    3 c 引用浅谈 C 一篇带你搞懂引用 C 入门 3 带底层分析 C 引用 的多种使用情况 C 为什么要用引用而不是指针 C 引用 是否占内存和使用 c 头文件重复引用问题 c 当中为什需要引用 如何理解c 中的引用折叠 C 基础学习笔记
  • C#中设置颜色对话框文字对话框

    话不多说直接上代码 private void button1 Click object sender EventArgs e FontDialog fd new FontDialog fd ShowDialog textBox1 Font
  • vue中使用axios

    axios axios是一个基于promise的HTTP库 可以用在浏览器和node js中 axios本质上也是对原生XHR的封装 只不过是promise的实现版本 用来向后端发送http请求 获取后端发送的数据 axios安装 npm
  • 虚拟服务器和vdi,如何搭建高效虚拟桌面架构(VDI)

    一个典型的VDI 虚拟桌面架构 可以帮助项目在密度 性能和成本间取得平衡 密度是指项目所涉及的基础架构 硬件 软件 网络等 能够支持的最佳用户数量 性能指从可用性角度衡量的用户体验 成本自然就是指项目预算 下面我列出的几点建议可以帮助你发挥
  • HTML5-3-表格

    文章目录 属性 边框属性 标题 跨行和跨列 单元格边距 HTML 表格由 table 标签来定义 tr tr 是 table row 的缩写 表示表格的一行 td td 是 table data 的缩写 表示表格的数据单元格 th th 是
  • MS coco数据集下载

    登录ms co co数据集官网 一直不能进入 翻墙之后开看到下载链接 有了下载链接下载还是很快的 在我这儿晚上下载 速度能达到7M s 所以也不上传到网盘了 有需要的人等夜深人静的时候下载效果更佳哦 我把2017的数据集下载链接贴上来 li
  • Windows下进程中每个线程占用CPU查看

    工具 进程资源管理器process explorer 安装 无需安装 下载后双击即可运行 具体方法 查看想要观察的进程 选择属性 每个线程占用CPU查看 这里的TID号是以下QT获取线程ID号后转为十进制得到的 QThead current

随机推荐

  • springboot微信公众号发送模板消息

    springboot微信公众号发送模板消息 1 准备工作 申请你所需要模板 配置ip白名单 你所需要部署的服务器ip 2 编写模板消息的请求参数封装类 import java util HashMap import java util Ma
  • Netty 实现http请求 并响应

    什么是Netty Netty 是一个利用Java 的高级网络的能力 隐藏其背后的复杂性而提供一个易于使用的API 的客户端 服务器 框架 Netty 与 Tomcat Netty与tomcat 最大的区别在于通信协议 Tomcat 是基于H
  • mysql视图的作用(详细)

    MySQL视图是一个虚拟表 其内容由查询定义 同真实的表一样 视图包含一系列带有名称的列和行数据 但是 视图并不在数据库中以存储的数据值集形式存在 行和列数据来自由定义视图的查询所引用的表 并且在引用视图时动态生成 对其中所引用的基础表来说
  • Centos7 网卡无法连接

    借用一下某个博主的图 因为我忘记截图了 礼貌附上链接 错误信息应该是这样的 大家可以先去看一下这个博主的错误 如果不行的话可以再换这种方法 在确认了ONBOOT的属性设置为 yes的情况下我进行了 网络重启 service network
  • Imagination在GDC 2022上推出下一代移动游戏解决方案

    借助于O3DE引擎展示采用硬件加速的全域光照光线追踪解决方案 英国伦敦 2022年3月23日 Imagination Technologies在 2022游戏开发者大会 GDC 2022 上推出了其下一代移动游戏图形处理解决方案 借助于Op
  • keil mdk 常见警告解析

    1 warning Deprecated declaration 函数 give arg types 该函数如果没有参数就要在括号里加 void 例如 函数定义 void TP GetAdXY int adx ady adx Read X
  • linux qt cmake错误的解决方法

    QT错误 新建项目后显示项目未配置 在工具 选项 kits中先要把kits clone一个到Manual中 在项目中使用Clone of Desktop这一个 极其坑 安装cmake sudo apt get install cmake 编
  • python-flask-sqlalchemy

    1 flask sqlalchemy 集成的两种方式 1 通过flask app初始化 from flask sqlalchemy import SQLAlchemy flask db SQLAlchemy from flask impor
  • 安装nltk_data数据包的问题:[Errno 11004] getaddrinfo failed

    问题 安装nltk时 在python shell中输 import nltk nltk download 会出现以下问题 这是因为nltk download 下载连接不上 在C Windows System32 drivers etc中找到
  • 图解fork函数机制(简单易懂)

    fork函数机制十分难以理解 尤其涉及到循环fork时就更难搞清楚 例如 for i 0 i lt 3 i pid fork if pid gt 0 std cout lt lt pid lt
  • 经常访问的站点

    色色日语网 www qianxunjp com 日本软件 www flatworld jp
  • MySQL执行计划解读

    Explain语法 EXPLAIN SELECT 变体 1 EXPLAIN EXTENDED SELECT 将执行计划 反编译 成SELECT语句 运行SHOW WARNINGS 可得到被MySQL优化器优化后的查询语句 2 EXPLAIN
  • 首看世界杯

    首看世界杯 不谈技术 只聊自己的几点感受 纯属个人感想 今年是第一次关注世界杯 本来对足球是没有什么兴趣的 如果说对足球有什么了解的话 大部分还是来自小时候的动画片 足球小将 但是看现实中的足球比赛 半天进一个球 甚至一个球都不会进 感觉没
  • 【技术碎片】jcraft.jsch 文件传输工具与方法

    目录 前言 依赖 ChannelSftp功能 实现 JschUtil java ImageInfoService java ImageInfoServiceImpl java 参考资料 前言 SFTP相当于SSH FTP 其中FTP则协议通
  • 2023第一个重大漏洞,几乎影响所有组织

    Dark Reading 网站披露 微软修复了 Outlook 中存在的零日漏洞 漏洞被追踪为 CVE 2023 23397 是一个权限提升漏洞 攻击者可以利用该漏洞访问受害者的 Net NTLMv2 响应身份验证哈希并冒充用户 安全研究人
  • 集训一月小结

    暑假集训过了4个周了 仔细想想这4个周我都做了些什么 学到了什么 又有什么让我感到开心 有什么令我绝望 不管是谁都必须承认在板凳上每天坐上9个小时以上 学习那些算法 有时候会让我感到兴奋 有时候又会让我不愿意在电脑前坐一分钟 想想过程 究其
  • 中国智能卡车“遥遥领先”:卡车NOA落地5000万公里0事故,全球首个

    贾浩楠 发自 副驾寺智能车参考 公众号 AI4Auto 成熟的 擎天柱 已经可以自己出去赚钱了 此时此刻 遍及华东 华北 华南 西北 几乎全国所有主要货运干线上 都有智能重卡承运商单 高速路段由卡车智能驾驶系统完全承担驾驶任务 自主控制油门
  • chinesecalendar报错:no available data for year 2022, only year between [2004, 2021] supported

    Error no available data for year 2022 only year between 2004 2021 supported 解决 更新最新chinesecalendar 每年年底需更新最新版本的chineseca
  • BGP route processing

    路由协议 套用IT里面的术语 实际上就是分布式数据库系统 它包含了节点间的数据传递和节点内的数据处理 对于BGP来说 节点间基于TCP 端口179 的连接 在这个基础上 可以构建AS间的EBGP AS内的IBGP IBGP有full mes
  • python中的os.walk函数的用法

    转自http blog csdn net bagboy taobao com article details 8938126 os walk top topdown True nerr r None followlinks False 可以