码迷,mamicode.com
首页 > 编程语言 > 详细

python os.walk的用法与举例

时间:2018-06-11 15:41:57      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:python 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:/opt]>$ tree /opt/
/opt/
├── aa
└── test
   ├── aa
   └── file

2 directories, 2 files

#!/usr/bin/python
# -*- coding: utf8 -*-
#*************************************************************************
# File Name: os.walk.py
# Author: huxianyong
# Mail: hxy123@163.com
# Created Time: Wed 21 Dec 2016 12:29:55 PM CST
#************************************************************************

import os
def main():
   file_dir = "/" + os.sep + "opt"
   for i,j,k in os.walk(file_dir):
       print "起始路径为: ",i
       print "起始路径下的文件夹为: ",j
       print "起始路径下的文件为: ",k
       print "\n"
if __name__ == '__main__':                                                          
   main()

[root:/python]>$ python os.walk.py
起始路径为:  //opt
起始路径下的文件夹为:  ['test']
起始路径下的文件为:  ['aa']


起始路径为:  //opt/test
起始路径下的文件夹为:  ['aa']
起始路径下的文件为:  ['file']


起始路径为:  //opt/test/aa
起始路径下的文件夹为:  []
起始路径下的文件为:  []

可以换另一种方法,得到的结果相同

import os
def main():
file_dir = "/" + os.sep + "opt"
for i in os.walk(file_dir):
print "起始路径为: ",i[0]
print "起始路径下的文件夹为: ",i[1]
print "起始路径下的文件为: ",i[2]
print "\n"
if __name__ == '__main__':
main()

也可以以另一种形式展示:

import os
def main():
file_dir = "/" + os.sep + "opt"
for i,j,k in os.walk(file_dir):
for h in j:
print "起始路径下的文件夹为: "
print(os.path.join(i,h))
for g in k:
print "起始路径下的文件为: "
print(os.path.join(i,g))
print "\n"
if __name__ == '__main__':
main()

[root:/python]>$ python os.walk3.py
起始路径下的文件夹为:
//opt/test
起始路径下的文件为:
//opt/aa


起始路径下的文件夹为:
//opt/test/aa
起始路径下的文件为



python os.walk的用法与举例

标签:python os.walk的用法与举例

原文地址:http://blog.51cto.com/853056088/2128044

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!