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


Posted in Python onApril 13, 2015

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读写Redis数据库操作示例
Mar 18 Python
python并发编程之线程实例解析
Dec 27 Python
使用sklearn之LabelEncoder将Label标准化的方法
Jul 11 Python
Python图像处理之颜色的定义与使用分析
Jan 03 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
Feb 19 Python
python-pyinstaller、打包后获取路径的实例
Jun 10 Python
Windows系统Python直接调用C++ DLL的方法
Aug 01 Python
PyTorch实现AlexNet示例
Jan 14 Python
python opencv如何实现图片绘制
Jan 19 Python
Django的CVB实例详解
Feb 10 Python
python cv2.resize函数high和width注意事项说明
Jul 05 Python
深入浅析Django MTV模式
Sep 04 Python
用Python生成器实现微线程编程的教程
Apr 13 #Python
Python字符串处理函数简明总结
Apr 13 #Python
Python日志模块logging简介
Apr 13 #Python
Python命令行参数解析模块optparse使用实例
Apr 13 #Python
初步介绍Python中的pydoc模块和distutils模块
Apr 13 #Python
Python随机生成数模块random使用实例
Apr 13 #Python
Python字典操作简明总结
Apr 13 #Python
You might like
在Zeus Web Server中安装PHP语言支持
2006/10/09 PHP
php下连接mssql2005的代码
2011/01/17 PHP
PHP中获取变量的变量名的一段代码的bug分析
2011/07/07 PHP
thinkphp的URL路由规则与配置实例
2014/11/26 PHP
PHPMailer发送邮件
2016/12/28 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
一段好玩的JavaScript代码
2006/12/01 Javascript
js 多浏览器分别判断代码
2010/04/01 Javascript
jquer之ajaxQueue简单实现代码
2011/09/15 Javascript
跨浏览器的事件对象介绍
2012/06/27 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
减少访问DOM的次数提升javascript性能
2014/02/24 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
js获取浏览器基本信息大全
2014/11/27 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
深入理解JavaScript的React框架的原理
2015/07/02 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
2015/10/27 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
react开发教程之React 组件之间的通信方式
2017/08/12 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
vue 虚拟dom的patch源码分析
2018/03/01 Javascript
vue 录制视频并压缩视频文件的方法
2018/07/27 Javascript
webpack 最佳配置指北(推荐)
2020/01/07 Javascript
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
使用Eclipse如何开发python脚本
2018/04/11 Python
python pandas模块基础学习详解
2019/07/03 Python
香港连卡佛百货官网:Lane Crawford
2019/09/04 全球购物
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
高中打架检讨书
2014/02/13 职场文书
家具商场的活动方案
2014/08/16 职场文书
优秀班主任先进事迹材料
2014/12/16 职场文书
卡特教练观后感
2015/06/08 职场文书
健康教育主题班会
2015/08/14 职场文书
纪检部部长竞选稿
2015/11/21 职场文书
学习心得体会
2019/06/20 职场文书
如何利用map实现Nginx允许多个域名跨域
2021/03/31 Servers