使用 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中的闭包
Aug 11 Python
使用NumPy和pandas对CSV文件进行写操作的实例
Jun 14 Python
用于业余项目的8个优秀Python库
Sep 21 Python
Python Tkinter 简单登录界面的实现
Jun 14 Python
python 内置函数汇总详解
Sep 16 Python
opencv中图像叠加/图像融合/按位操作的实现
Apr 01 Python
python读取配置文件方式(ini、yaml、xml)
Apr 09 Python
Python求凸包及多边形面积教程
Apr 12 Python
详解Django中views数据查询使用locals()函数进行优化
Aug 24 Python
python中lower函数实现方法及用法讲解
Dec 23 Python
只需要这一行代码就能让python计算速度提高十倍
May 24 Python
python 实现图片特效处理
Apr 03 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
php线性表的入栈与出栈实例分析
2015/06/12 PHP
php判断用户是否关注微信公众号
2016/07/22 PHP
PHP简单实现冒泡排序的方法
2016/12/26 PHP
php计算给定日期所在周的开始日期和结束日期示例
2017/02/06 PHP
Laravel学习教程之从入口到输出过程详解
2017/08/27 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
2019/10/17 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
JavaScript-世界上误解最深的语言分析
2007/08/12 Javascript
Div Select挡住的解决办法
2008/08/07 Javascript
解决JS浮点数运算出现Bug的方法
2013/03/12 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
JavaScript中5种调用函数的方法
2015/03/12 Javascript
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
2017/10/19 jQuery
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
vue中$nextTick的用法讲解
2019/01/17 Javascript
JS实现吸顶特效
2020/01/08 Javascript
javascript异常处理实现原理详解
2020/02/17 Javascript
JavaScript canvas绘制渐变颜色的矩形
2020/02/18 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
python多线程扫描端口示例
2014/01/16 Python
python使用fileinput模块实现逐行读取文件的方法
2015/04/29 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
2020/04/16 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
Python使用socket_TCP实现小文件下载功能
2020/10/09 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
HTML5在a标签内放置块级元素示例代码
2013/08/23 HTML / CSS
关于HTML5语义标签的实践(blog页面)
2016/07/12 HTML / CSS
送给程序员的20个Java集合面试问题
2014/08/06 面试题
公司经理任命书
2014/06/05 职场文书
uwsgi+nginx代理Django无法访问静态资源的解决
2021/05/10 Servers