使用 Python 遍历目录树的方法


Posted in Python onFebruary 29, 2020

假设有这样一个任务,希望对某个文件夹(包括所有子文件夹与文件)中的所有文件进行处理。这就需要遍历整理目录树, 处理遇到的每个文件。

import os
'''
遍历目录树
'''
for folder_name,sub_folders,filenames in os.walk('F:\\dicts'):
 print('当前文件夹:'+folder_name)
 for sub_folder in sub_folders:
 print('所包含的子文件夹:'+sub_folder)
 for filename in filenames:
 print('文件夹 %s 中所包含的文件:%s' %(folder_name,filename))
 print('')

运行结果:

当前文件夹:F:\dicts
所包含的子文件夹:手机
文件夹 F:\dicts 中所包含的文件:865523a5180df385363cc89ebd0eca6b.apk
文件夹 F:\dicts 中所包含的文件:LDOCE5.mdd
文件夹 F:\dicts 中所包含的文件:LDOCE5.mdx
文件夹 F:\dicts 中所包含的文件:sound_us.mdd
文件夹 F:\dicts 中所包含的文件:奶爸1.6G.zip
文件夹 F:\dicts 中所包含的文件:奶爸1.6GMdict词库的补充.rar
文件夹 F:\dicts 中所包含的文件:新牛津英汉双解大词典.mdx
文件夹 F:\dicts 中所包含的文件:柯林斯双解.mdd
文件夹 F:\dicts 中所包含的文件:柯林斯双解.mdx
文件夹 F:\dicts 中所包含的文件:汉语大词典(简体精排).mdx
文件夹 F:\dicts 中所包含的文件:汉语大词典.mdx
文件夹 F:\dicts 中所包含的文件:美国传统英汉双解学习词典.mdx
文件夹 F:\dicts 中所包含的文件:美国传统词典双解.mdx

当前文件夹:F:\dicts\手机
所包含的子文件夹:dicts

当前文件夹:F:\dicts\手机\dicts
文件夹 F:\dicts\手机\dicts 中所包含的文件:sound_us.mdd
文件夹 F:\dicts\手机\dicts 中所包含的文件:新牛津英汉双解大词典.mdx
文件夹 F:\dicts\手机\dicts 中所包含的文件:汉语大词典.mdx
文件夹 F:\dicts\手机\dicts 中所包含的文件:美国传统英汉双解学习词典.mdx
文件夹 F:\dicts\手机\dicts 中所包含的文件:美国传统词典双解.mdx

os.walk() 函数以一个文件夹路径作为入参。然后我们就可以在一个 for 循环语句中使用 os.walk() 函数,遍历这个文件夹的整个目录树。 os.walk() 在每次循环迭代过程中,会返回 3个值:

  • 当前文件夹的名称,字符串形式 。
  • 当前文件夹中子文件夹名称列表 。
  • 当前文件夹中文件的名称列表。

当前文件夹指的是 for 循环内当前迭代的文件夹。注意: 程序的当前工作目录,不会因为 os.walk() 而改变。

ps:下面给大家介绍下Python os.walk() 函数

函数简介

os.walk() 函数用于在目录树中遍历所有的文件及文件夹。

函数输入输出及使用格式

输入:遍历地址path
输出:正在遍历的地址本身root、该地址下所有目录的名称dirs(list)、该地址下所有文件files(list)
使用格式:
'''
root, dirs, files = os.walk(path)
'''

可调参数

topdown = True or False (True优先遍历上层目录top,False优先遍历底层目录down)
onerror=None (默认None,需要一个调用对象,当 walk 需要异常时,会调用
followlinks = True or False(默认False,如果是True,则会遍历目录下的快捷方式实际所指的目录)

总结

到此这篇关于使用 Python 遍历目录树的方法的文章就介绍到这了,更多相关python 遍历目录树内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python计数排序和基数排序算法实例
Apr 25 Python
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
Mar 30 Python
Python实现的堆排序算法原理与用法实例分析
Nov 22 Python
Python编程实现二分法和牛顿迭代法求平方根代码
Dec 04 Python
django+xadmin+djcelery实现后台管理定时任务
Aug 14 Python
python画一个玫瑰和一个爱心
Aug 18 Python
Python实用库 PrettyTable 学习笔记
Aug 06 Python
Python集合基本概念与相关操作实例分析
Oct 30 Python
如何基于python生成list的所有的子集
Nov 11 Python
Python实现银行账户资金交易管理系统
Jan 03 Python
Python综合应用名片管理系统案例详解
Jan 03 Python
如何在向量化NumPy数组上进行移动窗口
May 18 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
Feb 29 #Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 #Python
python pandas移动窗口函数rolling的用法
Feb 29 #Python
基于Python fminunc 的替代方法
Feb 29 #Python
浅谈SciPy中的optimize.minimize实现受限优化问题
Feb 29 #Python
使用python求解二次规划的问题
Feb 29 #Python
Python龙贝格法求积分实例
Feb 29 #Python
You might like
Terran兵种对照表
2020/03/14 星际争霸
Views rows style模板重写代码
2011/05/16 PHP
PHP GD库相关图像生成和处理函数小结
2016/09/30 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
2018/10/15 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
[JSF]使用DataModel处理表行事件的实例代码
2013/08/05 Javascript
Javascript中的几种继承方式对比分析
2016/03/22 Javascript
Node.js的Web模板引擎ejs的入门使用教程
2016/06/06 Javascript
Bootstrap中的Panel和Table全面解析
2016/06/13 Javascript
NodeJS自定义模块写法(详解)
2017/06/27 NodeJs
JS实现闭包中的沙箱模式示例
2017/09/07 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
用vue快速开发app的脚手架工具
2018/06/11 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
Vue 组件封装 并使用 NPM 发布的教程
2018/09/30 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
jQuery实现简单全选框
2020/09/13 jQuery
[02:28]DOTA2 2017国际邀请赛小组赛回顾
2017/08/09 DOTA
[51:06]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第二场 1月26日
2021/03/11 DOTA
分享Python开发中要注意的十个小贴士
2016/08/30 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
2018/02/07 Python
Python lambda表达式用法实例分析
2018/12/25 Python
django 自定义filter 判断if var in list的例子
2019/08/20 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
Camper鞋西班牙官方网上商店:西班牙马略卡岛的鞋类品牌
2019/03/14 全球购物
小区门卫值班制度
2014/01/24 职场文书
社会治安综合治理管理责任书
2014/04/16 职场文书
会计学自荐信
2014/06/03 职场文书
执法作风整顿剖析材料
2014/10/11 职场文书
运动与健康自我评价
2015/03/09 职场文书
党员廉政准则心得体会
2016/01/20 职场文书
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL
Windows Server 2012 修改远程默认端口3389的方法
2022/04/28 Servers
浅谈Node的内存泄露问题
2022/05/06 NodeJs