os.walk(top, topdown=True, onerror=None, followlinks=False)遍历目录,topdown=false表示先返回目录,后返回文件

参数说明:

top:表示需要遍历的目录树的路径。

topdown的默认值是“True”,表示首先返回根目录树下的文件,然后遍历目录树下的子目录。值设为False时,则表示先遍历目录树下的子目录,返回子目录下的文件,最后返回根目录下的文件。

例子:可以看出,topdown设值不同,os.walk()返回的列表元素顺序不同(但不是相反),所以遍历后的结果也不同

topdown=False:

#encoding=utf-8
import os
r=os.walk('d:\\test2',topdown=False)
for i in r:
    print i

结果:

D:\>python test.py
('d:\\test2\\dir1', [], [])
('d:\\test2\\dir2\\dir3', [], ['2.txt', '33.bmp'])
('d:\\test2\\dir2', ['dir3'], ['1.txt'])
('d:\\test2', ['dir1', 'dir2'], [])

topdown=True:

import os
r=os.walk('d:\\test2',topdown=True)
for i in r:
    print i

结果:

D:\>python test.py
('d:\\test2', ['dir1', 'dir2'], [])
('d:\\test2\\dir1', [], [])
('d:\\test2\\dir2', ['dir3'], ['1.txt'])
('d:\\test2\\dir2\\dir3', [], ['2.txt', '33.bmp'])

onerror的默认值是“None”,表示忽略文件遍历时产生的错误。如果不为空,则提供一个自定义函数提示错误信息后继续遍历或抛出异常中止遍历。

该函数返回一个列表,列表中的每一个元素都是一个元组,该元组有3个元素,分别表示每次遍历的路径名,目录列表和文件列表。

>>> r=os.walk('d:\\test2',topdown=False)
>>> r
<generator object walk at 0x0000000004C5D480>
>>> list(r)
[('d:\\test2\\dir1', [], []), ('d:\\test2\\dir2\\dir3', [], ['2.txt', '33.bmp']), ('d:\\test2\\dir2', ['dir3'], ['1.txt']), ('d:\\test2', ['dir1', 'dir2'], [])]

默认情况下,os.walk 不会遍历软链接指向的子目录,若有需要请将followlinks设定为true

用root,dirs,files三个变量遍历目录的的目录层级,目录层级的子目录,目录层级下的文件

 for root,dirs,files in os.walk(r'd:\\test2',topdown=False):

root:表示当前遍历到哪一级目录了,目录的名字是谁

dirs:表示root下有哪些子目录

files:表示root下边有几个文件

topdown=False:

代码:

#encoding=utf-8

import os
r=os.walk('d:\\test2',topdown=False)
for i in r:
    print i
print "*"*50
for root,dirs,files in os.walk('d:\\test2',topdown=False):
    print "front folder:",root
    for name in dirs:
        print "folder name:",os.path.join(root,name)
    for name in files:
        print "file name:",os.path.join(root,name)

结果:

topdown=True:

代码:

#encoding=utf-8

import os
r=os.walk('d:\\test2',topdown=True)
for i in r:
    print i
print "*"*50
for root,dirs,files in os.walk('d:\\test2',topdown=True):
    print "front folder:",root
    for name in dirs:
        print "folder name:",os.path.join(root,name)
    for name in files:
        print "file name:",os.path.join(root,name)

结果:

python遍历目录os.walk(''d:\\test2",topdown=False)的更多相关文章

  1. python笔记4-遍历文件夹目录os.walk()

    前言 如何遍历查找出某个文件夹内所有的子文件呢?并且找出某个后缀的所有文件 walk功能简介 1.os.walk() 方法用于通过在目录树种游走输出在目录中的文件名,向上或者向下. 2.walk()方 ...

  2. Python入门之os.walk()方法

    os.walk方法,主要用来遍历一个目录内各个子目录和子文件. os.walk(top, topdown=True, onerror=None, followlinks=False) 可以得到一个三元 ...

  3. python中的os.walk

    原文出处:https://www.jianshu.com/p/bbad16822eab python中os.walk是一个简单易用的文件.目录遍历器,可以帮助我们高效的处理文件.目录方面的事情. 1. ...

  4. 用Python遍历目录

    用Python遍历指定目录下的文件,一般有两种常用方法,但它们都是基于Python的os模块.下面两种方法基于Python2.7,主要用到的函数如下: 1.os.listdir(path):列出目录下 ...

  5. python遍历目录文件脚本的示例

    例子 自己写的一个Python遍历文件脚本,对查到的文件进行特定的处理.没啥技术含量,但是也记录一下吧. 代码如下 复制代码 #!/usr/bin/python# -*- coding: utf-8 ...

  6. Python遍历目录下xlsx文件

    对指定目录下的指定类型文件进行遍历,可对文件名关键字进行条件筛选 返回值为文件地址的列表 import os # 定义一个函数,函数名字为get_all_excel,需要传入一个目录 def get_ ...

  7. Python遍历目录下所有文件的最后一行进行判断若错误及时邮件报警-案例

    遍历目录下所有文件的最后一行进行判断若错误及时邮件报警-案例: #-*- encoding: utf-8 -*- __author__ = 'liudong' import linecache,sys ...

  8. python学习之os.walk()

    os.walk(top,topdown = True,onerror = None,followlinks = False) 参数 top -- 根目录下的每一个文件夹(包含它自己), 产生3-元组 ...

  9. Python 遍历目录下的子目录和文件

    import os A: 遍历目录下的子目录和文件 for root,dirs ,files in os.walk(path) root:要访问的路径名 dirs:遍历目录下的子目录 files:遍历 ...

随机推荐

  1. Oracle内置函数SQLCODE和SQLERRM的使用

    在我们写proc程序中经常要有错误处理,在错误处理中我们经常要输出错误信息来给帮助我们分析和解决错误原因,从而更正数据.这时候就会用到SQLCODE和SQLERRM. SQLCode:数据库操作的返回 ...

  2. mysql触发器:插入数据前更新创建时间为服务器的时间

    DROP TRIGGER IF EXISTS `upd_patientquestionnaire`; create trigger upd_patientquestionnaire BEFORE in ...

  3. 微信公开课厦门站 时尚行业专场PPT

    做为一位开发者,ytkah有幸参加了微信公开课厦门站-时尚行业专场,见证了微信支付的发展历程,小程序产品的实力简介,感受了一下与各位高手共聚一堂的氛围,当然还近距离接触了著名主持人兼NPC潮品(与潘玮 ...

  4. Python3学习之路~4.4 软件目录结构规范

    为什么要设计好目录结构? 可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等.从而非常快速的了解这个项目. 可维护性高: 定义好组织 ...

  5. SUDO安全委派和安全模块

    sudo更换身份 su  切换身份   使用su 切换身份必须首先直到被切换成用户的密码   如: su root  就必须要知道root的密码 这种机制安全性不高,容易泄露管理员密码 1. sudo ...

  6. Mac Maven配置

    Maven下载链接,解压到指定目录,我这里是 /Users/JYH/Desktop/Hadoop-2.7.2/apache-maven-3.3.9 打开终端,配置环境变量 输入命令 vi ~/.bas ...

  7. C# 抽象类、抽象属性、抽象方法

    抽象类往往用来表征对问题领域进行分析.设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象. 下面我们以水果为例,首先定义抽象类Fruit,抽象类中有公共属性vendor,抽象属 ...

  8. cocos2d JS-(JavaScript) 使用特权方法的例子

    function User(name,age) { var year = (new Date()).getFullYear() - age; this.getYearBorn = function ( ...

  9. cocos2d-x JS 复选按钮checkBox的单选与多选

    var HZ_createRoom = jx.BaseView.extend({//红中麻将 ctor : function() { this._super(); this.addLayout(res ...

  10. openCV学习——一、图像读取、显示、输出

    openCV学习——一.图像读取.显示.输出   一.Mat imread(const string& filename,int flags=1),用于读取图片 1.参数介绍 filename ...