zoukankan      html  css  js  c++  java
  • python3 os.walk()使用

    os.walk() 方法用于通过在目录树种游走输出在目录中的文件名,向上或者向下。

    在Unix,Windows中有效。

    os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
    • top -- 根目录下的每一个文件夹(包含它自己), 产生3-元组 (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】。

    1. 第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。

      root是一个string,代表目录的路径,

      dirs是一个list,包含了root下所有子文件夹,

      files 是一个list,包含了root下所有文件。

    2. dirs 和files里不包含路径信息只有文件夹或者文件的名字,如果需要得到全路径,需要使用os.path.join(dirpath, name)

    • topdown --可选,默认没有指定为True,一个目录的的3-元组将比它的任何子文件夹的3-元组先产生 (目录自上而下)。如果topdown为 False, 一个目录的3-元组将比它的任何子文件夹的3-元组后产生 (目录自下而上)。

    • onerror -- 可选,是一个函数; 它调用时有一个参数, 一个OSError实例。报告这错误后,继续walk,或者抛出exception终止walk。

    • followlinks -- 设置为 true,则通过软链接访问目录。

    文件结构如下:

    示例代码1:

    1 import os
    2 targetDir = 'D:Test1'
    3 for root, dirs, files in os.walk(targetDir):
    4     print('root = %s, dirs = %s, files = %s' %(root,dirs,files))

    结果如下所示:topdown 不写默认为True, 则目录自上而下遍历。

    示例代码2:

    1 import os
    2 targetDir = 'D:Test1'
    3 for root, dirs, files in os.walk(targetDir,topdown=False):
    4     print('root = %s, dirs = %s, files = %s' %(root,dirs,files))

    结果如下所示:topdown 为False时, 则目录自下而上遍历

    备注:

    1. 当 targetDir 的路径不存在时,结果返回空。
    2. 当 targetDir 是文件而非文件夹时,返回空。
    3. dirs, files 要想得到全路径,需拼接root, 即os.path.join(root, dirs), os.path.join(root, files)
    4. targetDir 下的文件夹个数为所有的root个数 -1,因为root数目中包含了targetDir 
  • 相关阅读:
    FEniCS 1.1.0 发布,计算算术模型
    Piwik 1.10 发布,增加社交网站统计
    淘宝褚霸谈做技术的心态
    CyanogenMod 10.1 M1 发布
    Druid 发布 0.2.11 版本,数据库连接池
    GNU Gatekeeper 3.2 发布
    Phalcon 0.9.0 BETA版本发布,新增大量功能
    EUGene 2.6.1 发布,UML 模型操作工具
    CVSps 3.10 发布,CVS 资料库更改收集
    Opera 移动版将采用 WebKit 引擎
  • 原文地址:https://www.cnblogs.com/nancyzhu/p/8470677.html
Copyright © 2011-2022 走看看