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入门教程
Feb 08 Python
python实现跨文件全局变量的方法
Jul 07 Python
用Python实现服务器中只重载被修改的进程的方法
Apr 30 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
May 18 Python
windows下python连接oracle数据库
Jun 07 Python
利用python修改json文件的value方法
Dec 31 Python
Python opencv实现人眼/人脸识别以及实时打码处理
Apr 29 Python
Python两台电脑实现TCP通信的方法示例
May 06 Python
pandas 数据索引与选取的实现方法
Jun 21 Python
Python配置文件处理的方法教程
Aug 29 Python
Python 日志logging模块用法简单示例
Oct 18 Python
Python字典实现伪切片功能
Oct 28 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/03 咖啡文化
php 分库分表hash算法
2009/11/12 PHP
PHP写UltraEdit插件脚本实现方法
2011/12/26 PHP
php目录操作实例代码
2014/02/21 PHP
JQuery 小练习(实例代码)
2009/08/07 Javascript
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
2014/05/02 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
微信支付 JS API支付接口详解
2016/07/11 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
2016/11/25 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
vue 计时器组件的实现代码
2017/09/14 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
JavaScript模块模式实例详解
2017/10/25 Javascript
详解Node.js异步处理的各种写法
2019/06/09 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
2019/06/27 Javascript
原生javascript自定义input[type=radio]效果示例
2019/08/27 Javascript
jQuery zTree如何改变指定节点文本样式
2020/10/16 jQuery
node脚手架搭建服务器实现token验证的方法
2021/01/20 Javascript
python二分法实现实例
2013/11/21 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
python中用ctypes模拟点击的实例讲解
2020/11/26 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
H5混合开发app如何升级的方法
2018/01/10 HTML / CSS
AmazeUI 面板的实现示例
2020/08/17 HTML / CSS
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
小学生迎国庆演讲稿
2014/09/05 职场文书
无财产离婚协议书范本
2014/10/28 职场文书
消防演习通知
2015/04/25 职场文书
新生儿未入户证明
2015/06/23 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
「地球外少年少女」BD发售宣传CM公开
2022/03/21 日漫
Python如何用re模块实现简易tokenizer
2022/05/02 Python
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers