python os.walk详解
os.walk
os.walk方法,主要用来遍历一个目录内各个子目录和子文件。
os.walk(top, topdown=True, onerror=None, followlinks=False)
可以得到一个三元tupple(dirpath, dirnames, filenames),
第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。
dirpath 是一个string,代表目录的路径,
dirnames 是一个list,包含了dirpath下所有子目录的名字。
filenames 是一个list,包含了非目录文件的名字。
这些名字不包含路径信息,如果需要得到全路径,需要使用os.path.join(dirpath, name).
通过for循环自动完成递归枚举
目录是这样的文件目录结构:
- [root@xiaoma mcw]# tree
- .
- ├── cur1.txt
- ├── cur2.txt
- ├── mcw
- │ ├── m1.txt
- │ └── m2.txt
- ├── test.py
- └── xiaoma
- ├── x1.txt
- └── x2.txt
- directories, files
(1)
- import os
- result = os.walk("./")
- print(result)
- ------------------结果:
- [root@xiaoma mcw]# python test.py
- <generator object walk at 0x7f0e90ad17d0>
(2)os.walk是很多个元组
- import os
- result = os.walk("./")
- print(result)
- for i in result:
- print(i) #i代表每个目录以及目录下的文件名字。
- ---------------结果;
- [root@xiaoma mcw]# python test.py
- ('./', ['xiaoma', 'mcw'], ['test.py', 'cur2.txt', 'cur1.txt']) #当前目录 当前目录下的目录,当前目录下的文件
- ('./xiaoma', [], ['x1.txt', 'x2.txt']) 子目录以及子目录写的文件
- ('./mcw', [], ['m2.txt', 'm1.txt'])
- #代码解析:os.walk("./") 的第一个元组的第一个元素是指定目录的名字,第二个元素当前目录下的子目录,第三个元素是当前目录下的文件列表。
- 第二个元组的第一个元素便是子目录的名字字符串;第二个元素就是子目录的子目录,如果没有就是空列表;第三个元素就是这个子目录下的文件列表。
- 第三个元组是当前目录下的另一个子目录。第一个元素是子目录的名称字符串;第二个元素是子目录的子目录。第三个元素是这个子目录下的文件列表。
(3)a,正在查询的./目录下的单层目录
- import os
- result = os.walk("./")
- for a,b,c in result:
- print(a) #a所有目录
- ------------------结果:
- [root@xiaoma mcw]# python test.py
- ./
- ./xiaoma
- ./mcw
4)b表示这个目录下的各个子目录列表,子目录没有子目录就显示为空列表
- import os
- result = os.walk("./")
- for a,b,c in result:
- print(b)
- --------------结果:
- [root@xiaoma mcw]# python test.py
- ['xiaoma', 'mcw'] #查询的目录./下的子目录
- [] #xiaoma目录下的子目录
- [] #mcw目录下的子目录
5)#c,表示各个目录下的文件列表
- import os
- result = os.walk("./")
- for a,b,c in result:
- print(c) #c,各个目录文件列表
- ----------------结果:
- [root@xiaoma mcw]# python test.py
- ['test.py', 'cur2.txt', 'cur1.txt']
- ['x1.txt', 'x2.txt']
- ['m2.txt', 'm1.txt']
6)遍历这个目录下所有文件,包括子目录的文件
- import os
- result = os.walk("./")
- for a,b,c in result:
- # a,正在查看的目录 b,此目录下的文件夹 c,此目录下的文件
- for item in c:
- path = os.path.join(a,item) #
- print(path)
- -----------------结果:
- [root@xiaoma mcw]# python test.py
- ./test.py
- ./cur2.txt
- ./cur1.txt
- ./xiaoma/x1.txt
- ./xiaoma/x2.txt
- ./mcw/m2.txt
- ./mcw/m1.txt
7)有三级以上的目录
- ('./', ['xiaoma', 'mcw'], ['test.py', 'cur2.txt', 'cur1.txt'])
- ('./xiaoma', [], ['x1.txt', 'x2.txt'])
- ('./mcw', ['haizi'], ['m2.txt', 'm1.txt'])
- ('./mcw/haizi', [], [])
参考:
1)https://www.cnblogs.com/JetpropelledSnake/p/8982495.html
python os.walk详解的更多相关文章
- os.walk详解
https://www.jianshu.com/p/bbad16822eab python中os.walk是一个简单易用的文件.目录遍历器,可以帮助我们高效的处理文件.目录方面的事情. 1.载入 要使 ...
- python os模块详解
一.Python os模块(Linux环境) 1.1 执行shell命令 os.system('cmd') 执行命令不保存结果 os.popen('command') 执行后返回结果,使用.read( ...
- python os用法详解
前言:在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,这就依赖于os模块,所以今天整理下比 ...
- python os 模块详解
os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'. os.getcwd:得 ...
- python之OS模块详解
python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...
- python之struct详解
python之struct详解 2018-05-23 18:20:29 醉小义 阅读数 20115更多 分类专栏: python 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议 ...
- Python 字符串方法详解
Python 字符串方法详解 本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息. ...
- python time模块详解
python time模块详解 转自:http://blog.csdn.net/kiki113/article/details/4033017 python 的内嵌time模板翻译及说明 一.简介 ...
- OS.ENVIRON()详解
OS.ENVIRON()详解
随机推荐
- openstack排除查找错误的两种方法
1.openstack日志一般放在什么什么位置?2.如何调试openstack命令执行过程? 我们会经常错误,但是我们碰到错误该怎么做,该如何找到原因.对于openstack有两种办法:在上一篇文章h ...
- java web开发环境配置系列(一)安装JDK
在今天,读书有时是件“麻烦”事.它需要你付出时间,付出精力,还要付出一份心境.--仅以<java web开发环境配置系列>来祭奠那逝去的…… 1.下载JDK文件(http://www.or ...
- virtualbox+vagrant学习-4-Vagrantfile-2-Configuration Version
Configuration Version 配置版本是vagrant 1.1+能够与vagrant 1.0保持向后兼容的机制.同时引入了引人注目的新特性和配置选项. 如果你运行了vagrant ini ...
- lombok问题
今天研究了下以dubbo作为分布式的开源项目dubbo-app. 为了排除一些依赖的冲突和干扰,我另外开辟一个新的工作空间,同时我也将公司项目的依赖打个压缩包分类备份下. 这样一来,dubbo-app ...
- [整理记录备忘] CentOS 7 相关记录
CentOS 7 命令行模式安装GNOME.KDE图形界面 一.进入 root 模式 因为权限限制,所以我们需要进入 root 模式,开机使用 root 登陆或者系统运行中切换为 root 用户均可. ...
- P2983 [USACO10FEB]购买巧克力Chocolate Buying
题目描述 Bessie and the herd love chocolate so Farmer John is buying them some. The Bovine Chocolate Sto ...
- 用C挑战无准备写2048
下午在刷题过程中,忽然想写2048了,以弥补以前写的那个千多行的,所以简单思考了一下准备采取的数据结构就开始了,本以为一个小时能搞定,结果后面改bug还是多花了些时间.因为在医院,所以声音不敢太大,如 ...
- docker 下 mysql 集群的搭建
下载程序&&创建docker容器 从mysql官网https://dev.mysql.com/downloads/cluster/上下载mysql集群库mysql-cluster-gp ...
- 2017-2018-2 《网络对抗技术》20155322 Exp6 信息搜集与漏洞扫描
[-= 博客目录 =-] 1-实践目标 1.1-实践介绍 1.2-实践内容 1.3-实践要求 2-实践过程 2.1-Google hacking & ZoomEye 2.2-DNS.IP信息收 ...
- 北京Uber优步司机奖励政策(4月19日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...