常用到文件夹遍历操作,会对文件进行如下操作:
0. 基本分析
- import os
-
- from os.path import join, getsize
-
- # yields a 3-tuple dirpath, dirnames, filenames
- for root, dirs, files in os.walk('python/Lib/email'):
- print(root, "consumes", end="")
- print(sum(getsize(join(root, name)) for name in files), end="")
- print("bytes in", len(files), "non-directory files")
- if 'CVS' in dirs:
- dirs.remove('CVS') # don't visit CVS directories
- import glob
- import os
-
- files = glob.glob("H:\Del\logs\**")
- for file in files:
- if os.path.isdir(file):
- sub_file = glob.glob(os.path.abspath(file)+"\**")
- for f in sub_file:
- files.append(f)
- else:
- print(file)
-
- >>>>>>>>> result
- H:\Del\logs\log.html
- H:\Del\logs\output.xml
- H:\Del\logs\report.html
- H:\Del\logs\log01\log01.txt
- H:\Del\logs\log01\log02\log02.txt
- H:\Del\logs\log01\log02\log03\log03.txt
1. 使用 CSDN 创作助手
- 提问 python 遍历文件夹
- 可以使用os模块和os.walk()函数来遍历文件夹。下面是一个例子:
-
- import os
-
- # 定义文件夹路径
- folder_path = '/path/to/folder/' # replaced: "H:\Del\logs"
-
- # 使用os.walk()函数来遍历文件夹
- for root, dirs, files in os.walk(folder_path):
- for file in files:
- file_path = os.path.join(root, file)
- # 处理文件操作
- print(file_path)
-
- 在代码中,首先定义了要遍历的文件夹路径 folder_path。
- 然后使用 os.walk() 函数来遍历文件夹,其中的 for 循环用于遍历文件夹中的文件,
- os.path.join() 函数用于构造完整的文件路径。你可以在处理文件操作中进行一些自己的操作。
-
- >>>>>>>> result
- H:\Del\logs\log.html
- H:\Del\logs\output.xml
- H:\Del\logs\report.html
- H:\Del\logs\log01\log01.txt
2. 使用文心一言提问
- 提问 python 遍历文件夹
- 在Python中,你可以使用os模块的os.walk()函数来遍历文件夹。
- 这个函数会遍历给定的目录以及所有子目录,并生成每个目录的路径。
-
- 下面是一个使用os.walk()的简单例子:
-
- import os
-
- def traverse_folder(path):
- for dirpath, dirnames, filenames in os.walk(path):
- print(dirpath)
- for filename in filenames:
- print(os.path.join(dirpath, filename))
-
- traverse_folder('/path/to/your/folder') # replaced: 'H:\Del\logs'
- 在这个例子中,os.walk()生成的是一个三元组:目录路径、目录名称列表和文件名称列表。
- 我们首先打印出每个目录的路径,然后遍历该目录下的文件名称列表,并打印出每个文件的完整路径。
-
- >>>>>>> result
- H:\Del\logs
- H:\Del\logs\log.html
- H:\Del\logs\output.xml
- H:\Del\logs\report.html
- H:\Del\logs\log01
- H:\Del\logs\log01\log01.txt
-
- 你也可以使用os.listdir()函数来列出指定目录中的所有文件和文件夹的名称,然后使用循环来遍历它们。
- 但是,这个函数不会递归地遍历子目录。
-
- import os
-
- def traverse_folder(path):
- for filename in os.listdir(path):
- full_path = os.path.join(path, filename)
- if os.path.isdir(full_path):
- traverse_folder(full_path) # 递归遍历子目录
- else:
- print(full_path)
-
- traverse_folder('/path/to/your/folder') # replaced: 'H:\Del\logs'
-
- >>>>>>> result
- H:\Del\logs\log.html
- H:\Del\logs\log01\log01.txt
- H:\Del\logs\output.xml
- H:\Del\logs\report.html
-
- 在这个例子中,我们首先使用os.listdir()列出给定目录中的所有文件和文件夹的名称,
- 然后使用os.path.join()将目录路径和文件名组合成完整的文件路径。
- 如果路径是一个目录,我们递归地调用traverse_folder()来遍历该目录的子目录,
- 否则我们直接打印出文件的路径。
3. 最佳方案
基本算法逻辑,稍经改造即可适用,对采用CVS的程序员来讲是福音,也将是灾难,会被替代吗?
- import os
-
- cdir = 0
- cfile = 0
- def traverse_folder(path):
- for dirpath, dirnames, filenames in os.walk(path):
- global cdir
- cdir = cdir + 1
- print(dirpath, ' - ',dirnames)
- for filename in filenames:
- global cfile
- cfile = cfile + 1
- print(os.path.join(dirpath, filename))
-
- traverse_folder('H:\Del\logs')
- print("Folder:", cdir, ' - ', "File: ", cfile)
4. 个人理解
GPT,Generative Pre-Trained Transformer(生成式预训练Transformer模型)
生成式AI的产生,是编程语言基本操作、学习的又一重要方式,应当会进一步降低开发语言的学习难度