os.walk(top, topdown=True)
top: 需要查询的文件夹路径
topdown: 默认为True,用于设置返回list的顺序,True表示从根目录开始,False根目录在最后。
返回值: 递归的list对象,3维元组列表,每个元素格式如下
(dirpath, dirnames, filenames)
(文件夹路径, 文件夹名字, 文件名)
对于某如下格式文件夹,执行以下代码(注:os.sep用来替换/符号更加稳定),打印如下
#coding=utf-8
import os
p = "D:"+os.sep+"test"+os.sep+"tina"+os.sep+"dist"
for parent, dirname, filenames in os.walk(p):
print parent
print dirname
print filenames
print "------------------------"
D:\test\tina\dist
['xxx']
['server.exe']
------------------------
D:\test\tina\dist\xxx
[]
['\xd0\xc2\xbd\xa8\xce\xc4\xb1\xbe\xce\xc4\xb5\xb5.txt']
------------------------
基于以上的代码,可以实现文件夹内包含的某文件的查找及路径拼接,比如想找到包含server的文件并返回绝对路径:
#coding=utf-8
import os
p = "D:"+os.sep+"test"+os.sep+"tina"+os.sep+"dist"
for parent, dirnames, filenames in os.walk(p):
for file in filenames:
if "server" in file:
print os.path.join(parent,file)
# 返回
# D:\test\tina\dist\server.exe