zoukankan      html  css  js  c++  java
  • 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)这句可以拿到目录下所有的文件!

    好记性不如烂键盘---点滴、积累、进步!
  • 相关阅读:
    SET/JFace ProgressIndicator的使用以及来回滚动进度条实际使用示例
    Java/SWT/JFace项目打包总结注意事项
    StyledText实现的简单Java类文件编辑器
    命令行界面的简单银行系统
    TC二次开发遇到的问题总结
    用Java模仿简单的Ping命令
    Oracle SQL Developer定制每天执行一次存储过程的计划任务
    关于SpringMVC中text/plain的编码导致的乱码问题解决方法
    Spring框架下的定时任务quartz框架的使用
    Delphi 函数参数修饰中的var 、out和const
  • 原文地址:https://www.cnblogs.com/yanghailin/p/15048241.html
Copyright © 2011-2022 走看看