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

yipeiwu_com6年前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实现获取汉字偏旁部首的方法示例【测试可用】

Python实现获取汉字偏旁部首的方法示例【测试可用】

本文实例讲述了Python实现获取汉字偏旁部首的方法。分享给大家供大家参考,具体如下: 功能介绍 传入一个汉字,返回其偏旁部首 字典 分为本地字典与网络字典,本地词典来自精简版的新华字典...

Python脚本实现12306火车票查询系统

Python脚本实现12306火车票查询系统

最近我看到看到使用python实现火车票查询,我自己也实现了,感觉收获蛮多的,下面我就把每一步骤都详细给分享出来。(注意使用的是python3) 首先我将最终结果给展示出来: 在cmd命...

pycharm 使用心得(四)显示行号

pycharm 使用心得(四)显示行号

在PyCharm 里,显示行号有两种办法: 1,临时设置。右键单击行号处,选择 Show Line Numbers。 但是这种方法,只对一个文件有效,并且,重启PyCharm 后消失。...

使用Pandas将inf, nan转化成特定的值

使用Pandas将inf, nan转化成特定的值

1. 数据处理中很恶心,出现 RuntimeWarning: divide by zero encountered in divide 发现自己的DataFrame中有除以0的运算,出...

python海龟绘图实例教程

本文以实例形式介绍了python turtle模块即海龟绘图的使用方法,对于需要进行图形编程的朋友相信会有一定的借鉴价值。 python turtle模块简介:  python...