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 相关文章推荐
pandas.DataFrame 根据条件新建列并赋值的方法
Apr 08 Python
Python使用爬虫爬取静态网页图片的方法详解
Jun 05 Python
Django中更改默认数据库为mysql的方法示例
Dec 05 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
Jan 05 Python
对Python3 解析html的几种操作方式小结
Feb 16 Python
python实现的发邮件功能示例
Sep 11 Python
python实现根据文件格式分类
Oct 31 Python
解析Python 偏函数用法全方位实现
Jun 26 Python
python爬虫中url管理器去重操作实例
Nov 30 Python
C站最全Python标准库总结,你想要的都在这里
Jul 03 Python
Python测试框架pytest高阶用法全面详解
Jun 01 Python
python缺失值填充方法示例代码
Dec 24 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
PHP语法速查表
2007/01/02 PHP
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
解析centos中Apache、php、mysql 默认安装路径
2013/06/25 PHP
JS点击链接后慢慢展开隐藏着图片的方法
2015/02/17 Javascript
JS实现动态移动层及拖动浮层关闭的方法
2015/04/30 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
js canvas实现擦除动画
2016/07/16 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
Javascript中的prototype与继承
2017/02/06 Javascript
在原生不支持的旧环境中添加兼容的Object.keys实现方法
2017/09/11 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
vue 中引用gojs绘制E-R图的方法示例
2018/08/24 Javascript
通过js示例讲解时间复杂度与空间复杂度
2019/08/06 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
Vue如何基于es6导入外部js文件
2020/05/15 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
2020/09/21 Javascript
Vue组件简易模拟实现购物车
2020/12/21 Vue.js
[45:18]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第一场
2018/04/04 DOTA
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
CentOS安装pillow报错的解决方法
2016/01/27 Python
基于Python的文件类型和字符串详解
2017/12/21 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
在python中实现调用可执行文件.exe的3种方法
2019/07/07 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
python 制作本地应用搜索工具
2021/02/27 Python
CSS3下的渐变文字效果实现示例
2018/03/02 HTML / CSS
《燕子专列》教学反思
2014/02/21 职场文书
岗位廉洁从业承诺书
2014/03/28 职场文书
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
教师作风整改措施思想汇报
2014/10/12 职场文书
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
房产分割协议书范文
2014/11/21 职场文书
2015年党支部公开承诺书
2015/01/22 职场文书
Nginx代理Redis哨兵主从配置的实现
2022/07/15 Servers