zoukankan      html  css  js  c++  java
  • os.walk遍历方式


    概述:

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

    用法:

    1 os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

    参数:

    • top -- 根目录下的每一个文件夹(包含它自己), 产生3-元组 (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】。
    • topdown --可选,为True或者没有指定, 一个目录的的3-元组将比它的任何子文件夹的3-元组先产生 (目录自上而下)。如果topdown为 False, 一个目录的3-元组将比它的任何子文件夹的3-元组后产生 (目录自下而上)。
    • onerror -- 可选,是一个函数; 它调用时有一个参数, 一个OSError实例。报告这错误后,继续walk,或者抛出exception终止walk。
    • followlinks -- 设置为 true,则通过软链接访问目录。

    问题:该方法遍历方式(topdown=True)

    答:二叉树层次遍历

    图示:

     


    验证代码:

     1 import os
     2 i = 1
     3 for root,dirs,files in os.walk('G:\oswalk测试'):
     4     print('------------------------第 %s 遍--------------------'%i)
     5     print(root)
     6     print(dirs)
     7     print(files)
     8     i += 1
     9 
    10 '''
    11 root:当前路径'path'
    12 dirs:当前路径下所有文件夹列表:[文件夹1、文件夹2...]
    13 files:当前路径下所有文件名列表:[文件1、文件2...]
    14 '''

    验证结果:
    ------------------------第 1 遍--------------------
    G:\oswalk测试
    ['文件夹1', '文件夹2']
    ['文件1.txt', '文件2.txt']
    ------------------------第 2 遍--------------------
    G:\oswalk测试\文件夹1
    ['文件夹1.1', '文件夹1.2']
    ['文件1.1.txt', '文件1.2.txt']
    ------------------------第 3 遍--------------------
    G:\oswalk测试\文件夹1\文件夹1.1
    ['文件夹1.1.1', '文件夹1.1.2']
    []
    ------------------------第 4 遍--------------------
    G:\oswalk测试\文件夹1\文件夹1.1\文件夹1.1.1
    []
    []
    ------------------------第 5 遍--------------------
    G:\oswalk测试\文件夹1\文件夹1.1\文件夹1.1.2
    []
    []
    ------------------------第 6 遍--------------------
    G:\oswalk测试\文件夹1\文件夹1.2
    []
    []
    ------------------------第 7 遍--------------------
    G:\oswalk测试\文件夹2
    []
    []


    总结:该方法查找顺序(topdown=False)?

    二叉树层次遍历

     

  • 相关阅读:
    Windbg命令学习11(.dump)
    Windbg命令学习13(ln和伪寄存器)
    Windbg命令学习15(bp bm bu bl bc ba断点)
    Windbg命令学习16(!gle和g和p)
    Windbg命令学习0 (.symfix和.cls和设置Log文件)
    API拦截方法一:PE简介
    Windbg命令学习12(.lastevent和!analyze)
    Windbg命令学习14(dv)
    Davinci DM6446开发攻略——LINUX GPIO驱动源码移植
    Centos 编译安装高版本Python方法
  • 原文地址:https://www.cnblogs.com/testlmh/p/8805378.html
Copyright © 2011-2022 走看看