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

Python遍历目录的4种方法

时间:2015-04-13 13:05:07      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:根目录   项目   通配符   

1.os.popen运行shell列表命令
def traverseDirByShell(path):
    for f in os.popen(‘ls ‘ + path):
        print f.strip()


2.利用glob模块


glob.glob(path)返回带目录的文件名.通配符和shell相似.path不能包含shell变量.
def traverseDirByGlob(path):
    path = os.path.expanduser(path)
    for f in glob(path + ‘/*‘):
        print f.strip()


3.利用os.listdir(推荐)


该方法返回不带根目录的文件名或子目录名
def traverseDirByListdir(path):
    path = os.path.expanduser(path)
    for f in os.listdir(path):
        print f.strip()


4.利用os.walk(推荐)


返回一个包含3个项目的元组:当前目录名称,子目录名称,子文件名称
def traverseDirByOSWalk(path):
    path = os.path.expanduser(path)
    for (dirname, subdir, subfile) in os.walk(path):
        #print(‘dirname is %s, subdir is %s, subfile is %s‘ % (dirname, subdir, subfile))
        print(‘[‘ + dirname + ‘]‘)
        for f in subfile:
            print(os.path.join(dirname, f))


整合代码:
#!/usr/bin/python
import os
from glob import glob




def printSeparator(func):
    def deco(path):
        print("call method %s, result is:" % func.__name__)
        print("-" * 40)
        func(path)
        print("=" * 40)
    return deco


@printSeparator
def traverseDirByShell(path):
    for f in os.popen(‘ls ‘ + path):
        print f.strip()


@printSeparator
def traverseDirByGlob(path):
    path = os.path.expanduser(path)
    for f in glob(path + ‘/*‘):
        print f.strip()


@printSeparator
def traverseDirByListdir(path):
    path = os.path.expanduser(path)
    for f in os.listdir(path):
        print f.strip()


@printSeparator
def traverseDirByOSWalk(path):
    path = os.path.expanduser(path)
    for (dirname, subdir, subfile) in os.walk(path):
        #print(‘dirname is %s, subdir is %s, subfile is %s‘ % (dirname, subdir, subfile))
        print(‘[‘ + dirname + ‘]‘)
        for f in subfile:
            print(os.path.join(dirname, f))


if __name__ == ‘__main__‘:
    path = r‘~/src/py‘
    traverseDirByGlob(path)


    traverseDirByGlob(path)


    traverseDirByListdir(path)


    traverseDirByOSWalk(path)


代码节选自codego.net

Python遍历目录的4种方法

标签:根目录   项目   通配符   

原文地址:http://qianc81115.blog.51cto.com/10067995/1631761

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