os模块大全详情

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循环自动完成递归枚举

目录是这样的文件目录结构:

  1. [root@xiaoma mcw]# tree
  2. .
  3. ├── cur1.txt
  4. ├── cur2.txt
  5. ├── mcw
  6.    ├── m1.txt
  7.    └── m2.txt
  8. ├── test.py
  9. └── xiaoma
  10. ├── x1.txt
  11. └── x2.txt
  12.  
  13. directories, files

(1)

  1. import os
  2. result = os.walk("./")
  3. print(result)
  4. ------------------结果:
  5. [root@xiaoma mcw]# python test.py
  6. <generator object walk at 0x7f0e90ad17d0>

(2)os.walk是很多个元组

  1. import os
  2. result = os.walk("./")
  3. print(result)
  4. for i in result:
  5. print(i) #i代表每个目录以及目录下的文件名字。
  6. ---------------结果;
  7. [root@xiaoma mcw]# python test.py
  8. ('./', ['xiaoma', 'mcw'], ['test.py', 'cur2.txt', 'cur1.txt']) #当前目录 当前目录下的目录,当前目录下的文件
  9. ('./xiaoma', [], ['x1.txt', 'x2.txt']) 子目录以及子目录写的文件
  10. ('./mcw', [], ['m2.txt', 'm1.txt'])
  11. #代码解析:os.walk("./") 的第一个元组的第一个元素是指定目录的名字,第二个元素当前目录下的子目录,第三个元素是当前目录下的文件列表。
  12. 第二个元组的第一个元素便是子目录的名字字符串;第二个元素就是子目录的子目录,如果没有就是空列表;第三个元素就是这个子目录下的文件列表。
  13. 第三个元组是当前目录下的另一个子目录。第一个元素是子目录的名称字符串;第二个元素是子目录的子目录。第三个元素是这个子目录下的文件列表。

(3)a,正在查询的./目录下的单层目录

  1. import os
  2. result = os.walk("./")
  3. for a,b,c in result:
  4. print(a) #a所有目录
  5. ------------------结果:
  6. [root@xiaoma mcw]# python test.py
  7. ./
  8. ./xiaoma
  9. ./mcw

4)b表示这个目录下的各个子目录列表,子目录没有子目录就显示为空列表

  1. import os
  2. result = os.walk("./")
  3. for a,b,c in result:
  4. print(b)
  5. --------------结果:
  6. [root@xiaoma mcw]# python test.py
  7. ['xiaoma', 'mcw'] #查询的目录./下的子目录
  8. [] #xiaoma目录下的子目录
  9. [] #mcw目录下的子目录

5)#c,表示各个目录下的文件列表

  1. import os
  2. result = os.walk("./")
  3. for a,b,c in result:
  4. print(c) #c,各个目录文件列表
  5. ----------------结果:
  6. [root@xiaoma mcw]# python test.py
  7. ['test.py', 'cur2.txt', 'cur1.txt']
  8. ['x1.txt', 'x2.txt']
  9. ['m2.txt', 'm1.txt']

6)遍历这个目录下所有文件,包括子目录的文件

  1. import os
  2. result = os.walk("./")
  3. for a,b,c in result:
  4. # a,正在查看的目录 b,此目录下的文件夹 c,此目录下的文件
  5. for item in c:
  6. path = os.path.join(a,item) #
  7. print(path)
  8. -----------------结果:
  9. [root@xiaoma mcw]# python test.py
  10. ./test.py
  11. ./cur2.txt
  12. ./cur1.txt
  13. ./xiaoma/x1.txt
  14. ./xiaoma/x2.txt
  15. ./mcw/m2.txt
  16. ./mcw/m1.txt

7)有三级以上的目录

  1. ('./', ['xiaoma', 'mcw'], ['test.py', 'cur2.txt', 'cur1.txt'])
  2. ('./xiaoma', [], ['x1.txt', 'x2.txt'])
  3. ('./mcw', ['haizi'], ['m2.txt', 'm1.txt'])
  4. ('./mcw/haizi', [], [])

参考:
1)https://www.cnblogs.com/JetpropelledSnake/p/8982495.html

python os.walk详解的更多相关文章

  1. os.walk详解

    https://www.jianshu.com/p/bbad16822eab python中os.walk是一个简单易用的文件.目录遍历器,可以帮助我们高效的处理文件.目录方面的事情. 1.载入 要使 ...

  2. python os模块详解

    一.Python os模块(Linux环境) 1.1 执行shell命令 os.system('cmd') 执行命令不保存结果 os.popen('command') 执行后返回结果,使用.read( ...

  3. python os用法详解

    前言:在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,这就依赖于os模块,所以今天整理下比 ...

  4. python os 模块详解

    os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'. os.getcwd:得 ...

  5. python之OS模块详解

    python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...

  6. python之struct详解

    python之struct详解 2018-05-23 18:20:29 醉小义 阅读数 20115更多 分类专栏: python   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议 ...

  7. Python 字符串方法详解

    Python 字符串方法详解 本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息.        ...

  8. python time模块详解

    python time模块详解 转自:http://blog.csdn.net/kiki113/article/details/4033017 python 的内嵌time模板翻译及说明  一.简介 ...

  9. OS.ENVIRON()详解

    OS.ENVIRON()详解

随机推荐

  1. openstack排除查找错误的两种方法

    1.openstack日志一般放在什么什么位置?2.如何调试openstack命令执行过程? 我们会经常错误,但是我们碰到错误该怎么做,该如何找到原因.对于openstack有两种办法:在上一篇文章h ...

  2. java web开发环境配置系列(一)安装JDK

    在今天,读书有时是件“麻烦”事.它需要你付出时间,付出精力,还要付出一份心境.--仅以<java web开发环境配置系列>来祭奠那逝去的…… 1.下载JDK文件(http://www.or ...

  3. virtualbox+vagrant学习-4-Vagrantfile-2-Configuration Version

    Configuration Version 配置版本是vagrant 1.1+能够与vagrant 1.0保持向后兼容的机制.同时引入了引人注目的新特性和配置选项. 如果你运行了vagrant ini ...

  4. lombok问题

    今天研究了下以dubbo作为分布式的开源项目dubbo-app. 为了排除一些依赖的冲突和干扰,我另外开辟一个新的工作空间,同时我也将公司项目的依赖打个压缩包分类备份下. 这样一来,dubbo-app ...

  5. [整理记录备忘] CentOS 7 相关记录

    CentOS 7 命令行模式安装GNOME.KDE图形界面 一.进入 root 模式 因为权限限制,所以我们需要进入 root 模式,开机使用 root 登陆或者系统运行中切换为 root 用户均可. ...

  6. P2983 [USACO10FEB]购买巧克力Chocolate Buying

    题目描述 Bessie and the herd love chocolate so Farmer John is buying them some. The Bovine Chocolate Sto ...

  7. 用C挑战无准备写2048

    下午在刷题过程中,忽然想写2048了,以弥补以前写的那个千多行的,所以简单思考了一下准备采取的数据结构就开始了,本以为一个小时能搞定,结果后面改bug还是多花了些时间.因为在医院,所以声音不敢太大,如 ...

  8. docker 下 mysql 集群的搭建

    下载程序&&创建docker容器 从mysql官网https://dev.mysql.com/downloads/cluster/上下载mysql集群库mysql-cluster-gp ...

  9. 2017-2018-2 《网络对抗技术》20155322 Exp6 信息搜集与漏洞扫描

    [-= 博客目录 =-] 1-实践目标 1.1-实践介绍 1.2-实践内容 1.3-实践要求 2-实践过程 2.1-Google hacking & ZoomEye 2.2-DNS.IP信息收 ...

  10. 北京Uber优步司机奖励政策(4月19日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...