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

yipeiwu_com5年前Python基础

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)

相关文章

Python图像处理模块ndimage用法实例分析

Python图像处理模块ndimage用法实例分析

本文实例讲述了Python图像处理模块ndimage用法。分享给大家供大家参考,具体如下: 一 原始图像 1 代码 from scipy import misc from scipy...

Python实现队列的方法

本文实例讲述了Python实现队列的方法。分享给大家供大家参考。具体实现方法如下: #!/usr/bin/env python queue = [] def enQ():...

跟老齐学Python之关于类的初步认识

在开始部分,请看官非常非常耐心地阅读下面几个枯燥的术语解释,本来这不符合本教程的风格,但是,请看官谅解,因为列位将来一定要阅读枯燥的东西的。这些枯燥的属于解释,均来自维基百科。 1、问题...

python读取文件名称生成list的方法

经常需要读取某个文件夹下所有的图像文件。 我使用python写了个简单的代码,读取某个文件夹下某个后缀的文件,将文件名生成为文本(csv格式) import fnmatch impo...

Django框架静态文件使用/中间件/禁用ip功能实例详解

Django框架静态文件使用/中间件/禁用ip功能实例详解

本文实例讲述了Django框架静态文件使用/中间件/禁用ip功能。分享给大家供大家参考,具体如下: 静态文件 一、静态文件的使用 静态文件:网页中使用的css,js,图片 静态文件的使用...