如何遍历文件夹生成包含文件名和文件夹名的字典列表
代码修改方案
你当前的代码初始化的是单字典结构,将所有文件名、文件夹名分别存入两个列表中,和你需要的「单文件对应单字典,所有字典组成列表」的结构不匹配。此外原代码还存在两个问题:
- 初始化时仅创建了
filename、label两个空列表,循环中写入的是不存在的folder字段,实际运行会抛出KeyError异常 - 如果不需要读取文件内容,无需执行
open操作打开文件,可减少不必要的IO开销
调整后的代码如下:
import os # 初始化空列表存储所有文件的信息 file_list = [] # 遍历目标文件夹下的文件 for file in os.listdir(folder): # 每个文件对应一个独立字典 current_file = { "filename": file, "folder": folder } file_list.append(current_file) print(file_list)
如果你确实需要读取文件内容做后续处理,可以保留open逻辑:
import os file_list = [] for file in os.listdir(folder): file_path = os.path.join(folder, file) # 读取文件内容,按需做后续处理 with open(file_path, 'r', encoding='utf-8') as f: file_content = f.read() current_file = { "filename": file, "folder": folder # 如有需要可以加字段存储文件内容:"content": file_content } file_list.append(current_file) print(file_list)
运行上述代码即可得到你期望的列表套字典的输出结构。
内容的提问来源于stack exchange,提问作者Girolamo
相关产品推荐
相关产品推荐

