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
本文介绍如何利用Python的os模块中的walk函数递归遍历指定目录下的所有子目录和文件,并通过示例展示了如何查找包含特定字符串的文件及其完整路径。
1111

被折叠的 条评论
为什么被折叠?



