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

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

[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详解的更多相关文章

  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. Jenkins+Github(Robotframework代码)

    个人记录,且为Windows10系统,仅供参考. 一. 准备 1. Github:安装git.注册github.将Robotframework代码更新到github. 2. Jenkins安装,并安装 ...

  2. 集合之HashSet

    在前篇博文中(java提高篇(二三)-----HashMap)详细讲解了HashMap的实现过程,对于HashSet而言,它是基于HashMap来实现的,底层采用HashMap来保存元素.所以如果对H ...

  3. jenkins持续化集成工具 centos 6.5安装

    1.wget 下载war包,即一键部署包 wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war 2.java命令安装 java -j ...

  4. nginx学习要点记录

    IO多路复用: 1.轻量 2.cpu亲和性:把CPU核心和nginx工作进程绑定,把每个worker进程固定在一个CPU上执行,减少切换cpu的cache miss,获得更好的性能 3.IO多路复用e ...

  5. 使用JS获取上一页的url地址

    一般来说每个页面上面都有一个返回按钮,用来返回上一页,代码如下: <a href="javascript:history.go(-1)" class="jsBack ...

  6. 404 Note Found 队-Beta1

    目录 组员情况 组员1(组长):胡绪佩 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示组内最新成果 团 ...

  7. Apache24 + php5.6.31 +Sql server R2 环境搭建①

    win8(7)x64系统下 :PHP5.5.15 + Apache2.4.10 + SQL server 2008 R2  的配置方法分享给大家,32位的同理,不过下载的软件需要也是32位的. 好久未 ...

  8. iOS 多线程:『GCD』详尽总结

    本文用来介绍 iOS 多线程中 GCD 的相关知识以及使用方法.这大概是史上最详细.清晰的关于 GCD 的详细讲解+总结的文章了.通过本文,您将了解到: 1. GCD 简介 2. GCD 任务和队列 ...

  9. OO第一次博客作业总结反思

    使用了masteruml插件来生成类图和metrics插件分析代码 第一次作业 1.UML类图 >在第一次作业中,使用了两个类,代码中有没有使用的变量与函数,为平衡两个类的内容,我将输出函数放在 ...

  10. u-boot-1.1.6实现自定义命令

    学习目标: 1.了解u-boot-1.1.6中命令的实现机制 2.掌握如何在u-boot-1.1.6中添加自定义命令 1.命令的实现机制 uboot运行在命令行解析模式时,在串口终端输入uboot命令 ...