• python 文件夹os.walk


    测试的目录结构如下:

    .
    ├── 1.txt
    ├── 2.txt
    ├── a
    │   ├── 3.txt
    │   ├── d
    │   └── e
    ├── b
    │   ├── 4.txt
    │   ├── 7.txt
    │   ├── f
    │   │   └── 5.txt
    │   └── h
    └── c
        └── 5.txt
    
    7 directories, 7 files
    

    代码如下:

    import os
    
    root_dir = "/data_1/everyday/0723/test/"
    
    for root, dir, files in os.walk(root_dir):
            for file in files:
                print(root)
                print(dir)
                print(file)
                print("--------"*10)
                print()
                print()
    

    输出如下:

    /data_1/everyday/0723/test/
    ['b', 'a', 'c']
    1.txt
    --------------------------------------------------------------------------------
    
    
    /data_1/everyday/0723/test/
    ['b', 'a', 'c']
    2.txt
    --------------------------------------------------------------------------------
    
    
    /data_1/everyday/0723/test/b
    ['h', 'f']
    7.txt
    --------------------------------------------------------------------------------
    
    
    /data_1/everyday/0723/test/b
    ['h', 'f']
    4.txt
    --------------------------------------------------------------------------------
    
    
    /data_1/everyday/0723/test/b/f
    []
    5.txt
    --------------------------------------------------------------------------------
    
    
    /data_1/everyday/0723/test/a
    ['e', 'd']
    3.txt
    --------------------------------------------------------------------------------
    
    
    /data_1/everyday/0723/test/c
    []
    5.txt
    --------------------------------------------------------------------------------
    

    可以用b目标来详细分析一下os.walk功能:

    ├── b
    │   ├── 4.txt
    │   ├── 7.txt
    │   ├── f
    │   │   └── 5.txt
    │   └── h
    
    /data_1/everyday/0723/test/b
    ['h', 'f']
    7.txt
    --------------------------------------------------------------------------------
    /data_1/everyday/0723/test/b
    ['h', 'f']
    4.txt
    --------------------------------------------------------------------------------
    /data_1/everyday/0723/test/b/f
    []
    5.txt
    --------------------------------------------------------------------------------
    

    可见:

    for root, dir, files in os.walk(root_dir):
    

    root是文件夹根目录,
    dir是root根目录下面的所有的文件夹,若没有文件夹就是空[]
    files是root根目录下面的所有文件
    列出所有的files,空文件夹不列出。
    所以:

    for root, dir, files in os.walk(path):
        for file in files:
            full_path = os.path.join(root, file)
    

    full_path = os.path.join(root, file)这句可以拿到目录下所有的文件!

    好记性不如烂键盘---点滴、积累、进步!
  • 相关阅读:
    deepin linux手工更新系统
    redis使用redis-cli查看所有的keys及清空所有的数据
    使用浏览器地址栏调用CXF Webservice的写法
    windows 80端口被占用
    How to install 64-bit Google Chrome 28+ on 64-bit RHEL/CentOS 6 or 7
    CAS 单点登录流程
    Restful是什么,SOAP Webservice和RESTful Webservice
    SpringMVC中的@PathVariable
    VMWare安装苹果操作系统OS X
    eclipse(adt-bundle)的Android SDK Manager下载不了谷歌的东西怎么办?
  • 原文地址:https://www.cnblogs.com/yanghailin/p/15048241.html
Copyright © 2020-2023  润新知