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进程间通信Queue实例解析
Jan 25 Python
python Spyder界面无法打开的解决方法
Apr 27 Python
pandas 根据列的值选取所有行的示例
Nov 07 Python
解决python xlrd无法读取excel文件的问题
Dec 25 Python
python实现整数的二进制循环移位
Mar 08 Python
PyQt4编程之让状态栏显示信息的方法
Jun 18 Python
python在openstreetmap地图上绘制路线图的实现
Jul 11 Python
MNIST数据集转化为二维图片的实现示例
Jan 10 Python
python 正则表达式参数替换实例详解
Jan 17 Python
pycharm实现在虚拟环境中引入别人的项目
Mar 09 Python
Python多线程的退出控制实现
Aug 10 Python
浅析PyCharm 的初始设置(知道)
Oct 12 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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
PHP底层运行机制与工作原理详解
2020/07/31 PHP
让textarea控件的滚动条怎是位与最下方
2007/04/20 Javascript
探讨js中的双感叹号判断
2013/11/11 Javascript
JS清空多文本框、文本域示例代码
2014/02/24 Javascript
基于Jquery easyui 选中特定的tab
2015/11/17 Javascript
javascript中类的定义方式详解(四种方式)
2015/12/22 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
Web打印解决方案之证件套打的实现思路
2016/08/29 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
Angular.js中定时器循环的3种方法总结
2017/04/27 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
Vue2 使用 Echarts 创建图表实例代码
2017/05/18 Javascript
详谈commonjs模块与es6模块的区别
2017/10/18 Javascript
vue-scroller记录滚动位置的示例代码
2018/01/17 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
python 实现堆排序算法代码
2012/06/05 Python
简单介绍Python中的readline()方法的使用
2015/05/24 Python
Python下的常用下载安装工具pip的安装方法
2015/11/13 Python
解析Python中的生成器及其与迭代器的差异
2016/06/20 Python
python生成lmdb格式的文件实例
2018/11/08 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
HTML5 CSS3打造相册效果附源码下载
2014/06/16 HTML / CSS
使用canvas压缩图片上传的方法示例
2020/02/07 HTML / CSS
汇智创新科技发展有限公司
2015/12/06 面试题
自主招生自荐信格式
2013/12/03 职场文书
kfc实习自我鉴定
2013/12/14 职场文书
档案室主任岗位职责
2014/02/12 职场文书
医疗纠纷协议书
2014/04/16 职场文书
班级学习计划书
2014/04/27 职场文书
道路运输企业安全生产责任书
2014/07/28 职场文书
大学生就业指导课心得体会
2016/01/15 职场文书
2019 入党申请书范文
2019/07/10 职场文书
Win10系统下配置Java环境变量
2021/06/13 Java/Android
Go语言安装并操作redis的go-redis库
2022/04/14 Golang