无法读取文本文件并转换为pandas DataFrame的技术求助
解决文本文件转DataFrame的问题
直接用pd.read_csv()失败,大概率是因为OCR生成的文本文件不是标准CSV格式,或者编码、分隔符不匹配,按以下步骤处理:
- 先确认文本结构:打开你的
outputfiles.txt,查看每行的格式(比如是否有固定分隔符,如括号、冒号、制表符,或是聊天记录式的[时间] 姓名: 内容结构) - 指定正确编码:如果
cp1252编码报错,尝试encoding='utf-8'或encoding='utf-8-sig' - 根据结构选择读取方式:
- 如果有明确分隔符(比如制表符
\t、竖线|),直接在read_csv里指定sep参数:chat_df = pd.read_csv(filepath, header=None, encoding='utf-8', sep='\t') - 如果是不规则的聊天类格式(比如
[14:23] 张三: 今天开会),用正则逐行提取内容再转DataFrame:import pandas as pd import re filepath = r"D:\Projects\textfiles\outputfiles.txt" data = [] # 匹配[时间] 姓名: 内容的正则,可根据实际格式调整 line_pattern = re.compile(r'\[(.*?)\] (.*?): (.*)') with open(filepath, 'r', encoding='utf-8') as f: for line in f: line = line.strip() if not line: continue match_result = line_pattern.match(line) if match_result: data.append([ match_result.group(1), # 时间 match_result.group(2), # 发件人 match_result.group(3) # 消息内容 ]) chat_df = pd.DataFrame(data, columns=['时间', '发件人', '消息内容'])
- 如果有明确分隔符(比如制表符
内容的提问来源于stack exchange,提问作者Balaji
相关产品推荐
相关产品推荐

