zoukankan      html  css  js  c++  java
  • Python 对目录做遍历

    os.walk() 用于遍历目录里的文件,或者说迭代目录里的文件 ??? 什么意思?比如 Linux 中 find /data -type f 表示找出 /data 目录下的所有文件,它会先找出 /data 目录下的文件,如果 /data 目录下还有子目录,再继续往下从子目录中找出文件,如果子目录下还有子目录,再继续往下找,...... ,最终找出所有的文件,这就叫做遍历/迭代目录里的文件

    os.walk() 语法:

    walk(top, topdown=True, onerror=None, followlinks=False)

    top :指定我们要遍历哪个目录,这个目录称为 top ( 顶级 ) 目录
    topdown :可选参数,如果为True,则优先遍历 top 目录,如果为False,则优先遍历 top 目录下的子目录,默认是True
    onerror :可选参数,默认为None,表示当我们遍历目录里的文件时,如果遍历出错,忽略并继续遍历;如果不为空,则需要提供一个自定义函数来提示出现错误后,要继续遍历,还是抛出异常中止遍历
    followlinks :可选参数,如果为True,则会遍历目录的软链接指向的实际目录,如果为 False 则不会

    os.walk() 用法如下:

    [root@localhost ~]$ tree /data
    /data
    |-- 1.txt
    |-- 2.txt
    |-- tmp1
    |   |-- 1.txt
    |   `-- 2.txt
    `-- tmp2
        |-- 1.txt
        `-- 2.txt
    In [1]: import os
    
    In [2]: for p, d, f in os.walk('/data'):      # os.walk()会返回一个三元组,分别是 dirpath, dirnames, filenames,这里我们用 p, d, f 来接收
       ...:     print p, d, f                     # dirpath 表示 top 目录,dirnames 表示 top 目录下的子目录(不包括该子目录下的子目录),filenames 表示该子目录下的所有文件(不包括改子目录下的子目录的文件)
       ...:     
    /data ['tmp1', 'tmp2'] ['2.txt', '1.txt']     # /data 表示 top 目录,['tmp1', 'tmp2'] 表示 /data 下的子目录,['2.txt', '1.txt'] 表示子目录下的文件。然后继续遍历 - - - ╮
    /data/tmp1 [] ['2.txt', '1.txt']                                                                                                                     < - - - ╯
    /data/tmp2 [] ['2.txt', '1.txt']

    通常,我们会用 os.walk() 找出指定目录下的所有文件:

    In [1]: import os
    
    In [2]: for p, d, f in os.walk('/data'):
       ...:     for i in f:
       ...:         print os.path.join(p, i)
       ...:         
    /data/2.txt
    /data/1.txt
    /data/tmp1/2.txt
    /data/tmp1/1.txt
    /data/tmp2/2.txt
    /data/tmp2/1.txt

        

  • 相关阅读:
    20151216JqueryUI---dialog代码备份
    20151215jqueryUI--dialog代码备份
    20151215jquery学习笔记--jqueryUI --dialog(对话框)
    20151214 jquery插件代码备份
    20151213Jquery学习笔记--插件
    javaweb常用工具类及配置文件备份
    Javaweb常用工具类及配置文件备份
    20151212Jquery 工具函数代码备份
    20151212jquery学习笔记--工具函数
    CF976E Well played!
  • 原文地址:https://www.cnblogs.com/pzk7788/p/10286783.html
Copyright © 2011-2022 走看看