如何将多个纯文本文件读取为含文件名与文本列的DataFrame?
修正方案
问题出在pd.read_table()的使用场景——它适合读取带分隔符的表格数据,而非纯文本内容。当读取无分隔符的纯文本时,pandas会误将文件内容解析为列名,导致生成不符合预期的DataFrame。
可以通过直接读取文件内容为字符串,手动构造每行数据的方式解决:
from pathlib import Path import pandas as pd data = [] # 遍历目标路径下的所有txt文件 for file in Path("/content/").glob("*.txt"): # 读取文件全部内容,若文件有特殊编码可调整encoding参数 with open(file, 'r', encoding='utf-8') as f: text_content = f.read() # 将文件名和对应文本存入字典,再添加到列表 data.append({ "FileName": file.name, "text": text_content }) # 将列表转换为目标DataFrame df = pd.DataFrame(data) print(df)
关键改进点:
- 用
open()+read()直接读取纯文本内容为完整字符串,规避pandas的表格解析逻辑干扰 - 手动构建包含
FileName和text的字典,确保每个文件对应DataFrame的一行数据 - 最后统一将列表转换为DataFrame,结构更可控且符合需求
内容的提问来源于stack exchange,提问作者Sangeun
相关产品推荐
相关产品推荐

