您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Python遍历目录的4种方法实例介绍

2025/7/17 6:03:03发布22次查看
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)
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product