各位用户为了找寻关于Python遍历目录的4种方法实例介绍的资料费劲了很多周折。这里教程网为您整理了关于Python遍历目录的4种方法实例介绍的相关资料,仅供查阅,以下为您介绍关于Python遍历目录的4种方法实例介绍的详细内容

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)