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下singleton模式的实现方法
Jul 16 Python
使用python开发vim插件及心得分享
Nov 04 Python
Python中的下划线详解
Jun 24 Python
pycharm运行程序时在Python console窗口中运行的方法
Dec 03 Python
python机器学习库scikit-learn:SVR的基本应用
Jun 26 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
Apr 26 Python
详解Python中namedtuple的使用
Apr 27 Python
Django实现内容缓存实例方法
Jun 30 Python
Python如何输出警告信息
Jul 30 Python
pycharm2020.2 配置使用的方法详解
Sep 16 Python
python 如何用urllib与服务端交互(发送和接收数据)
Mar 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
PHP 字符串分割和比较
2009/10/06 PHP
PHP 验证码不显示只有一个小红叉的解决方法
2013/09/30 PHP
php中mail函数发送邮件失败的解决方法
2014/12/24 PHP
php自定义时间转换函数示例
2016/12/07 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
Javascript 构造函数 实例分析
2008/11/26 Javascript
javascript 类型判断代码分析
2010/03/28 Javascript
jQuery功能函数详解
2015/02/01 Javascript
js点击文本框后才加载验证码实例代码
2015/10/20 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
bootstrap多种样式进度条展示
2016/12/20 Javascript
bootstrap vue.js实现tab效果
2017/02/07 Javascript
Angular4学习笔记之新建项目的方法
2017/07/18 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
js实现表格单列按字母排序
2020/08/12 Javascript
[05:06]2017亚洲邀请赛DAC回顾片
2017/04/19 DOTA
python实现红包裂变算法
2016/02/16 Python
Python列出一个文件夹及其子目录的所有文件
2016/06/30 Python
利用ctypes提高Python的执行速度
2016/09/09 Python
Python编程之string相关操作实例详解
2017/07/22 Python
Python重新加载模块的实现方法
2018/10/16 Python
python 将有序数组转换为二叉树的方法
2019/03/26 Python
python plotly画柱状图代码实例
2019/12/13 Python
HTML5的新特性(1)
2016/03/03 HTML / CSS
日本酒店、民宿、温泉旅馆、当地旅行团中文预订:e路东瀛
2019/12/09 全球购物
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
酒店实习个人鉴定
2013/12/07 职场文书
高考备战决心书
2014/03/11 职场文书
房屋租赁协议书
2014/04/10 职场文书
先进集体事迹材料范文
2014/12/25 职场文书
新闻报道稿范文
2015/07/23 职场文书
升学宴学生致辞
2015/07/27 职场文书
JavaScript控制台的更多功能
2021/04/28 Javascript
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS