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 2与Python 3版本和编码的对比
Feb 14 Python
Python编程实现正则删除命令功能
Aug 30 Python
Python利用ElementTree模块处理XML的方法详解
Aug 31 Python
Python Tkinter实现简易计算器功能
Jan 30 Python
Django数据库表反向生成实例解析
Feb 06 Python
Django中的CBV和FBV示例介绍
Feb 25 Python
python 获取文件下所有文件或目录os.walk()的实例
Apr 23 Python
使用python将图片格式转换为ico格式的示例
Oct 22 Python
python遍历小写英文字母的方法
Jan 02 Python
Python实现微信消息防撤回功能的实例代码
Apr 29 Python
Python numpy多维数组实现原理详解
Mar 10 Python
python3读取autocad图形文件.py实例
Jun 05 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
收听困难?教您超简便短波广播抗干扰方法!
2021/03/01 无线电
综合图片计数器
2006/10/09 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
php实现可用于mysql,mssql,pg数据库操作类
2014/12/13 PHP
php中smarty模板条件判断用法实例
2015/06/11 PHP
js 自定义的联动下拉框
2010/02/07 Javascript
jquery.cvtooltip.js 基于jquery的气泡提示插件
2010/11/19 Javascript
AeroWindow 基于JQuery的弹出窗口插件
2011/06/27 Javascript
JS随即打乱数组实现代码
2012/12/03 Javascript
javascript之典型高阶函数应用介绍
2013/01/10 Javascript
window.location.href = window.location.href 跳转无反应 a超链接onclick事件写法
2013/08/21 Javascript
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
11种ASP连接数据库的方法
2015/09/18 Javascript
js添加事件的通用方法推荐
2016/05/15 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
2016/09/14 Javascript
微信小程序 教程之模板
2016/10/18 Javascript
BootStrap3中模态对话框的使用
2017/01/06 Javascript
Bootstrap模态框(Modal)实现过渡效果
2017/03/17 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
一个小时快速搭建微信小程序的方法步骤
2019/04/15 Javascript
详解小程序毫秒级倒计时(适用于拼团秒杀功能)
2019/05/05 Javascript
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
详解Python中的__new__、__init__、__call__三个特殊方法
2016/06/02 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
Python csv文件的读写操作实例详解
2019/11/19 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
浅谈Python 函数式编程
2020/06/20 Python
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
AE美国鹰美国官方网站:American Eagle Outfitters
2016/08/22 全球购物
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
Ralph Lauren意大利官方网站:时尚界最负盛名的品牌之一
2018/10/18 全球购物
Skyscanner加拿大:全球旅行搜索平台
2018/11/19 全球购物
大学生精神文明先进个人事迹材料
2014/05/02 职场文书
教师节校长致辞
2015/07/31 职场文书
python之基数排序的实现
2021/07/26 Python
postgreSQL数据库基础知识介绍
2022/04/12 PostgreSQL