使用 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 相关文章推荐
离线安装Pyecharts的步骤以及依赖包流程
Apr 23 Python
Python装饰器用法实例分析
Jan 14 Python
python之信息加密题目详解
Jun 26 Python
python按键按住不放持续响应的实例代码
Jul 17 Python
python区分不同数据类型的方法
Oct 14 Python
详解python中*号的用法
Oct 21 Python
Python SELENIUM上传文件或图片实现过程
Oct 28 Python
python爬虫模拟浏览器的两种方法实例分析
Dec 09 Python
Pytoch之torchvision.transforms图像变换实例
Dec 30 Python
Python 中@property的用法详解
Jan 15 Python
Python利用PyPDF2库获取PDF文件总页码实例
Apr 03 Python
10款最佳Python开发工具推荐,每一款都是神器
Oct 15 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新手用的Insert和Update语句构造类
2012/03/31 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
JS 对输入框进行限制(常用的都有)
2013/07/30 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
nodejs搭建本地http服务器教程
2017/03/13 NodeJs
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
2017/09/26 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
解决vue 退出动画无效的问题
2020/08/09 Javascript
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
python的re正则表达式实例代码
2018/01/24 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
Python内存管理实例分析
2019/07/10 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
2019/08/07 Python
Python bytes string相互转换过程解析
2020/03/05 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
Python selenium爬取微信公众号文章代码详解
2020/08/12 Python
eBay奥地利站:eBay.at
2019/07/24 全球购物
会计与审计毕业生自荐信范文
2013/12/30 职场文书
企业文明单位申报材料
2014/05/16 职场文书
企业承诺书格式
2014/05/21 职场文书
委托书怎样写
2014/08/30 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
离婚协议书范本
2015/01/26 职场文书
本溪关门山导游词
2015/02/09 职场文书
销售合作意向书范本
2015/05/08 职场文书
金正昆讲礼仪观后感
2015/06/11 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书
总结Pyinstaller打包的高级用法
2021/06/28 Python
Golang解析JSON对象
2022/04/30 Golang