Python 对目录做遍历
os.walk() 用于遍历目录里的文件,或者说迭代目录里的文件 ??? 什么意思?比如 Linux 中 find /data -type f 表示找出 /data 目录下的所有文件,它会先找出 /data 目录下的文件,如果 /data 目录下还有子目录,再继续往下从子目录中找出文件,如果子目录下还有子目录,再继续往下找,...... ,最终找出所有的文件,这就叫做遍历/迭代目录里的文件
os.walk() 语法:
walk(top, topdown=True, onerror=None, followlinks=False)
top :指定我们要遍历哪个目录,这个目录称为 top ( 顶级 ) 目录
topdown :可选参数,如果为True,则优先遍历 top 目录,如果为False,则优先遍历 top 目录下的子目录,默认是True
onerror :可选参数,默认为None,表示当我们遍历目录里的文件时,如果遍历出错,忽略并继续遍历;如果不为空,则需要提供一个自定义函数来提示出现错误后,要继续遍历,还是抛出异常中止遍历
followlinks :可选参数,如果为True,则会遍历目录的软链接指向的实际目录,如果为 False 则不会
os.walk() 用法如下:
[root@localhost ~]$ tree /data
/data
|-- 1.txt
|-- 2.txt
|-- tmp1
| |-- 1.txt
| `-- 2.txt
`-- tmp2
|-- 1.txt
`-- 2.txt
In [1]: import os
In [2]: for p, d, f in os.walk('/data'): # os.walk()会返回一个三元组,分别是 dirpath, dirnames, filenames,这里我们用 p, d, f 来接收
...: print p, d, f # dirpath 表示 top 目录,dirnames 表示 top 目录下的子目录(不包括该子目录下的子目录),filenames 表示该子目录下的所有文件(不包括改子目录下的子目录的文件)
...:
/data ['tmp1', 'tmp2'] ['2.txt', '1.txt'] # /data 表示 top 目录,['tmp1', 'tmp2'] 表示 /data 下的子目录,['2.txt', '1.txt'] 表示子目录下的文件。然后继续遍历 - - - ╮
/data/tmp1 [] ['2.txt', '1.txt'] < - - - ╯
/data/tmp2 [] ['2.txt', '1.txt']
通常,我们会用 os.walk() 找出指定目录下的所有文件:
In [1]: import os
In [2]: for p, d, f in os.walk('/data'):
...: for i in f:
...: print os.path.join(p, i)
...:
/data/2.txt
/data/1.txt
/data/tmp1/2.txt
/data/tmp1/1.txt
/data/tmp2/2.txt
/data/tmp2/1.txt
Python 对目录做遍历的更多相关文章
- Python 中当前位置以及目录文件遍历操作
Python 中当前位置以及目录文件遍历操作 当前位置 print(os.path.dirname(__file__)) 其中 dirname 会选择目录(文件夹),"__file__&qu ...
- python GUI编程tkinter示例之目录树遍历工具
摘录 python核心编程 本节我们将展示一个中级的tkinter应用实例,这个应用是一个目录树遍历工具:它会从当前目录开始,提供一个文件列表,双击列表中任意的其他目录,就会使得工具切换到新目录中,用 ...
- python开发目录合并小工具 PathMerge
前言 这个程序陆陆续续开发了几天,正好我在学Python,就一边做一边学,倒是学到不少东西. 不得不说python是快速开发的好工具. 程序做了一些改进,这两天又忙着毕设,现在才想起来发到博客上.想想 ...
- Python os.walk文件遍历用法【转】
python中os.walk是一个简单易用的文件.目录遍历器,可以帮助我们高效的处理文件.目录方面的事情. 1.载入 要使用os.walk,首先要载入该函数 可以使用以下两种方法 import os ...
- python 查看目录下所有目录和文件
python查看目录下所有的子目录和子文件 python递归遍历目录结构 我喜欢第一种 方法1 import json, os def list_dir(path, res): for i in os ...
- WEB安全第二篇--用文件搞定服务器:任意文件上传、文件包含与任意目录文件遍历
零.前言 最近做专心web安全有一段时间了,但是目测后面的活会有些复杂,涉及到更多的中间件.底层安全.漏洞研究与安全建设等越来越复杂的东东,所以在这里想写一个系列关于web安全基础以及一些讨巧的pay ...
- 如和用python给女朋友做个专属她的软件
如和用python给女朋友做个专属她的软件 在学习python的路上如果觉得枯燥就可以想我一样做一些有趣的事情就不会无聊了 python是一门及其有趣的语言. 人们都喜欢记住一些重要的日子,比如说跟女 ...
- Python中setuptools做什么用的?
概括 setuptools是 Python Enterprise Application Kit(PEAK)的一个副项目,它 是一组Python的 distutilsde工具的增强工具(适用于 Pyt ...
- python模块目录文件后续
1,新增PythonModule加载path Ruiy tip(关于python list[]数据库类型特殊你懂的!append(""),extend([""] ...
随机推荐
- LeetCode: Word Search 解题报告
Word SearchGiven a 2D board and a word, find if the word exists in the grid. The word can be constru ...
- eclipse 修改java代码不重启服务器 生效配置
1.本文目的:用tomcat进行web开发时,修改Java代码往往要重启代码,当工程较大启动较慢时,严重影响效率,本文通过eclipse下tomcat开发和发布web程序时,对一些Java代码一般修改 ...
- Head first 第一章
一.两个设计原则: 原则一:找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起. 鸭子模型中展现是必须的,而且每个展现都不一样,所以可以在基类中定义一个抽象类.以便子类可以 ...
- jsonp爬取页面
jsonp Connection conn = Jsoup.connect("http://ip.taobao.com/service/getIpInfo.php?ip=" + i ...
- PHP empty(),isset()与is_null()的实例测试
测试的类型如下: <?php $a; $b = false; $c = ''; $d = ; $e = null; $f = array(); ?> empty() 首先是empty的 ...
- 【Unity】UGUI的Text各种小问题
Text:用中文输入法时,无法输入汉字.输入了拼音后,按回车键无反应.目前的办法是在别的地方打好字后复制过来. Font:字体必须选一个,选None则文字变成一串黑色方块. Font Size:文字大 ...
- System类及其getProterties( )和getProperty( )
System这个类来源: public final class System extends Object System类包含若干个有用的类字段和方法,而且不能被实例化.System类提供的工具包括标 ...
- 机器学习:K-Means聚类算法
本文来自同步博客. 前面几篇文章介绍了回归或分类的几个算法,它们的共同点是训练数据包含了输出结果,要求算法能够通过训练数据掌握规律,用于预测新输入数据的输出值.因此,回归算法或分类算法被称之为监督学习 ...
- elasticsearch安装与使用(5)-- search guard安装与配置
一.安装search guard插件必须要安装两部分: ①search-guard-xx ②search-guard-ssl (XX指的是与elasticsearch引擎对应的版本) github地址 ...
- Apache2.4.x版wampserver本地php服务器如何让外网访问及启用.htaccess
http://www.jb51.net/article/61193.htm ———————————————————————————————————————————— 这篇文章主要介绍了Apache2. ...