python os.walk_python os.walk详解

os.walk

os.walk方法,主要用来遍历一个目录内各个子目录和子文件。

os.walk(top, topdown=True, οnerrοr=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.txt2 directories, 7 files

(1)

import os

result= os.walk("./")

print(result)------------------结果:

[root@xiaoma mcw]# python test.py

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

import os

result= os.walk("./")

print(result)for i inresult:

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 inresult:

print(a) #a所有目录------------------结果:

[root@xiaoma mcw]# python test.py

././xiaoma

./mcw

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

import os

result= os.walk("./")for a,b,c inresult:

print(b)--------------结果:

[root@xiaoma mcw]# python test.py

['xiaoma', 'mcw'] #查询的目录./下的子目录

[] #xiaoma目录下的子目录

[] #mcw目录下的子目录

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

import os

result= os.walk("./")for a,b,c inresult:

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 inresult:

# a,正在查看的目录 b,此目录下的文件夹 c,此目录下的文件for item inc:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值