• Python文件夹遍历


    常用到文件夹遍历操作,会对文件进行如下操作:

    • 文件夹数量
    • 文件数量
    • 文件类型及各类型数量
    • 文件属性:大小、创建日期、最后修改日期

    0. 基本分析

    • 使用 os lib
      1. import os
      2. from os.path import join, getsize
      3. # yields a 3-tuple dirpath, dirnames, filenames
      4. for root, dirs, files in os.walk('python/Lib/email'):
      5. print(root, "consumes", end="")
      6. print(sum(getsize(join(root, name)) for name in files), end="")
      7. print("bytes in", len(files), "non-directory files")
      8. if 'CVS' in dirs:
      9. dirs.remove('CVS') # don't visit CVS directories
    • 使用 glob
      1. import glob
      2. import os
      3. files = glob.glob("H:\Del\logs\**")
      4. for file in files:
      5. if os.path.isdir(file):
      6. sub_file = glob.glob(os.path.abspath(file)+"\**")
      7. for f in sub_file:
      8. files.append(f)
      9. else:
      10. print(file)
      11. >>>>>>>>> result
      12. H:\Del\logs\log.html
      13. H:\Del\logs\output.xml
      14. H:\Del\logs\report.html
      15. H:\Del\logs\log01\log01.txt
      16. H:\Del\logs\log01\log02\log02.txt
      17. H:\Del\logs\log01\log02\log03\log03.txt
    • 使用 CSDN 创作助手 和 百度 文心一言分别提问

    1. 使用 CSDN 创作助手

        - 提问  python 遍历文件夹

    1. 可以使用os模块和os.walk()函数来遍历文件夹。下面是一个例子:
    2. import os
    3. # 定义文件夹路径
    4. folder_path = '/path/to/folder/' # replaced: "H:\Del\logs"
    5. # 使用os.walk()函数来遍历文件夹
    6. for root, dirs, files in os.walk(folder_path):
    7. for file in files:
    8. file_path = os.path.join(root, file)
    9. # 处理文件操作
    10. print(file_path)
    11. 在代码中,首先定义了要遍历的文件夹路径 folder_path。
    12. 然后使用 os.walk() 函数来遍历文件夹,其中的 for 循环用于遍历文件夹中的文件,
    13. os.path.join() 函数用于构造完整的文件路径。你可以在处理文件操作中进行一些自己的操作。
    14. >>>>>>>> result
    15. H:\Del\logs\log.html
    16. H:\Del\logs\output.xml
    17. H:\Del\logs\report.html
    18. H:\Del\logs\log01\log01.txt

     2. 使用文心一言提问

         - 提问  python 遍历文件夹

    1. 在Python中,你可以使用os模块的os.walk()函数来遍历文件夹。
    2. 这个函数会遍历给定的目录以及所有子目录,并生成每个目录的路径。
    3. 下面是一个使用os.walk()的简单例子:
    4. import os
    5. def traverse_folder(path):
    6. for dirpath, dirnames, filenames in os.walk(path):
    7. print(dirpath)
    8. for filename in filenames:
    9. print(os.path.join(dirpath, filename))
    10. traverse_folder('/path/to/your/folder') # replaced: 'H:\Del\logs'
    11. 在这个例子中,os.walk()生成的是一个三元组:目录路径、目录名称列表和文件名称列表。
    12. 我们首先打印出每个目录的路径,然后遍历该目录下的文件名称列表,并打印出每个文件的完整路径。
    13. >>>>>>> result
    14. H:\Del\logs
    15. H:\Del\logs\log.html
    16. H:\Del\logs\output.xml
    17. H:\Del\logs\report.html
    18. H:\Del\logs\log01
    19. H:\Del\logs\log01\log01.txt
    20. 你也可以使用os.listdir()函数来列出指定目录中的所有文件和文件夹的名称,然后使用循环来遍历它们。
    21. 但是,这个函数不会递归地遍历子目录。
    22. import os
    23. def traverse_folder(path):
    24. for filename in os.listdir(path):
    25. full_path = os.path.join(path, filename)
    26. if os.path.isdir(full_path):
    27. traverse_folder(full_path) # 递归遍历子目录
    28. else:
    29. print(full_path)
    30. traverse_folder('/path/to/your/folder') # replaced: 'H:\Del\logs'
    31. >>>>>>> result
    32. H:\Del\logs\log.html
    33. H:\Del\logs\log01\log01.txt
    34. H:\Del\logs\output.xml
    35. H:\Del\logs\report.html
    36. 在这个例子中,我们首先使用os.listdir()列出给定目录中的所有文件和文件夹的名称,
    37. 然后使用os.path.join()将目录路径和文件名组合成完整的文件路径。
    38. 如果路径是一个目录,我们递归地调用traverse_folder()来遍历该目录的子目录,
    39. 否则我们直接打印出文件的路径。

    3. 最佳方案

        基本算法逻辑,稍经改造即可适用,对采用CVS的程序员来讲是福音,也将是灾难,会被替代吗?

    1. import os
    2. cdir = 0
    3. cfile = 0
    4. def traverse_folder(path):
    5. for dirpath, dirnames, filenames in os.walk(path):
    6. global cdir
    7. cdir = cdir + 1
    8. print(dirpath, ' - ',dirnames)
    9. for filename in filenames:
    10. global cfile
    11. cfile = cfile + 1
    12. print(os.path.join(dirpath, filename))
    13. traverse_folder('H:\Del\logs')
    14. print("Folder:", cdir, ' - ', "File: ", cfile)

    4. 个人理解

        GPTGenerative Pre-Trained Transformer(生成式预训练Transformer模型)
        生成式AI的产生,是编程语言基本操作、学习的又一重要方式,应当会进一步降低开发语言的学习难度

    • 基于历史的而非未发生的
    • 基于大数据训练,也许各种语言的标准帮助文档会成为最佳实践
    • 快速查询并生成最佳的代码实践,当然所用的生成式AI要有足够多的数据训练
    • 生成式AI应当会越来越狡猾,给出的回复除了正确答案外,自生成的逻辑会越来越严密难于判断
    • 生成式AI会是人类最佳实践的集合吗?
    • 如何给生成式AI一个更难的题目,测试其成长过程?
    • 如何完整的测试生成式AI?
  • 相关阅读:
    通信原理 | 网络相关知识总结
    反射,折射,菲涅尔反射Shader实现
    蓝牙数据包协议解析
    数据结构初步(三)- 线性表之顺序表的分析与C语言实现
    Web网络基础
    企业微信hook接口协议,ipad协议http,外部联系人图片视频文件下载
    计算机视觉专家:如何从C++转Python
    小程序制作(超详解!!!)第十二节 循环求和计算器
    【光流估计】——gmflow中self attention,cross attention的比较
    数据结构详解①——诸论
  • 原文地址:https://blog.csdn.net/u012841352/article/details/132642551