转自:http://blog.youkuaiyun.com/bagboy_taobao_com/article/details/8938126
(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循环自动完成递归枚举
例如:
F:\aaa 目录是这样的文件目录结构
F:\aaa
|--------1.txt
|--------2.txt
|--------3.txt
|--------4
|-------5.txt
|-------6.txt
|-------7.txt
- #!/usr/bin/env python
- # 2.py
- # use UTF-8
- # Python 3.3.0
- # os.walk()的使用
- import os
- # 枚举dirPath目录下的所有文件
- def main():
- #begin
- fileDir = "F:" + os.sep + "aaa" # 查找F:\aaa 目录下
- for root, dirs, files in os.walk(fileDir):
- #begin
- print(root)
- print(dirs)
- print(files)
- #end
- os.system("pause")
- #end
- if __name__ == '__main__':
- #begin
- main()
- #end
- # 输出
- # F:\aaa
- # ['4']
- # ['1.txt', '2.txt', '3.txt']
- # F:\aaa\4
- # []
- # ['5.txt', '6.txt', '7.txt']
你也可以这样
- #!/usr/bin/env python
- # 3.py
- # use UTF-8
- # Python 3.3.0
- # os.walk()的使用
- import os
- # 枚举dirPath目录下的所有文件
- def main():
- #begin
- fileDir = "F:" + os.sep + "aaa" # 查找F:\aaa 目录下
- for a in os.walk(fileDir):
- #begin
- print(a[0])
- print(a[1])
- print(a[2])
- #end
- os.system("pause")
- #end
- if __name__ == '__main__':
- #begin
- main()
- #end
- # 输出
- # F:\aaa
- # ['4']
- # ['1.txt', '2.txt', '3.txt']
- # F:\aaa\4
- # []
- # ['5.txt', '6.txt', '7.txt']
通过for循环即可完成目录的递归.
你还可以这样
- #!/usr/bin/env python
- # 2.py
- # use UTF-8
- # Python 3.3.0
- # os.walk()的使用
- import os
- # 枚举dirPath目录下的所有文件
- def main():
- #begin
- fileDir = "F:" + os.sep + "aaa" # 查找F:\aaa 目录下
- for root, dirs, files in os.walk(fileDir):
- #begin
- for dir in dirs:
- #begin
- print(os.path.join(root, dir))
- #end
- for file in files:
- #begin
- print(os.path.join(root, file))
- #end
- #end
- os.system("pause")
- #end
- if __name__ == '__main__':
- #begin
- main()
- #end
- # 输出
- # F:\aaa\4
- # F:\aaa\1.txt
- # F:\aaa\2.txt
- # F:\aaa\3.txt
- # F:\aaa\4\5.txt
- # F:\aaa\4\6.txt
- # F:\aaa\4\7.txt