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 相关文章推荐
c++生成dll使用python调用dll的方法
Jan 20 Python
python动态网页批量爬取
Feb 14 Python
Python3.6安装及引入Requests库的实现方法
Jan 24 Python
python实现归并排序算法
Nov 22 Python
python调用外部程序的实操步骤
Mar 04 Python
Python数据报表之Excel操作模块用法分析
Mar 11 Python
django框架实现一次性上传多个文件功能示例【批量上传】
Jun 19 Python
PyQt5 窗口切换与自定义对话框的实例
Jun 20 Python
python 列表转为字典的两个小方法(小结)
Jun 28 Python
python 基于TCP协议的套接字编程详解
Jun 29 Python
python如何使用代码运行助手
Jul 03 Python
Python 居然可以在 Excel 中画画你知道吗
Feb 15 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
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
PHP 简单日历实现代码
2009/10/28 PHP
ThinkPHP文件上传实例教程
2014/08/22 PHP
php实现从上传文件创建缩略图的方法
2015/04/02 PHP
ThinkPHP表单数据智能写入create方法实例分析
2015/09/27 PHP
js生成随机数之random函数随机示例
2013/12/20 Javascript
Jquery中"$(document).ready(function(){ })"函数的使用详解
2013/12/30 Javascript
js获取鼠标点击的位置实现思路及代码
2014/05/09 Javascript
用js模拟struts2的多action调用示例
2014/05/19 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
jQuery基于ajax实现星星评论代码
2015/08/07 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
jquery实现的伪分页效果代码
2015/10/29 Javascript
完美实现八种js焦点轮播图(上篇)
2016/07/18 Javascript
JavaScript每天必学之基础知识
2016/09/17 Javascript
jquery实现数字输入框
2017/02/22 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
2017/07/13 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
2018/03/07 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
javascript面向对象三大特征之封装实例详解
2019/07/24 Javascript
js实现登录时记住密码的方法分析
2020/04/05 Javascript
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
2015/08/10 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
使用python脚本自动创建pip.ini配置文件代码实例
2019/09/20 Python
python设置环境变量的作用整理
2020/02/17 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
html5新特性与用法大全
2018/09/13 HTML / CSS
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
浅谈HTML5中dialog元素尝鲜
2018/10/15 HTML / CSS
意大利灯具购物网站:Lampade.it
2018/10/18 全球购物
大学生蛋糕店创业计划书
2014/01/13 职场文书
旅游节目策划方案
2014/05/26 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang
Windows下redis下载、redis安装及使用教程
2021/06/02 Redis