如何将子文件夹内的.txt文件内容与子文件夹名映射并生成DataFrame?
解决方法
1. 修正字典生成逻辑
原代码仅存储了文件名,未读取文件内容。需要先拼接文件的完整路径,再打开文件读取内容,同时可以增加判断只处理.txt文件,避免误读其他格式文件。
修正后的代码:
import os folder_content_map = {} # 替换成你的主文件夹实际路径 for subdir, _, files in os.walk(r"你的主文件夹路径"): folder_name = os.path.basename(subdir) for file in files: if file.endswith(".txt"): file_full_path = os.path.join(subdir, file) # 编码可根据文件实际情况调整,比如gbk try: with open(file_full_path, "r", encoding="utf-8") as f: file_content = f.read() folder_content_map.setdefault(folder_name, []).append(file_content) except Exception as e: print(f"读取 {file_full_path} 时出错: {str(e)}")
2. 转换为DataFrame
用pandas把字典转成DataFrame,有两种常用方式,按需选择:
方式一:按文件夹分组,内容存为列表列
import pandas as pd df = pd.DataFrame(folder_content_map.items(), columns=["子文件夹名称", "文件内容列表"])
方式二:每条文件内容占一行,更适合后续分析
import pandas as pd data_list = [] for folder, contents in folder_content_map.items(): for content in contents: data_list.append({"子文件夹名称": folder, "文件内容": content}) df = pd.DataFrame(data_list)
内容的提问来源于stack exchange,提问作者user17181673
相关产品推荐
相关产品推荐

