Python实现:将长格式日记文本转换为扁平化CSV格式
批量转换日记文本为CSV格式
问题背景
需将Word导出的日记文本迁移至仅支持CSV导入的应用,文本格式规则:
- 每条日记以日期、日记编号开头,以
Journal end结尾 - 单条日记内容可跨多行,条目间以换行分隔
- 近1500条日记无法手动处理,使用
pandas.read_csv以Journal end为分隔符失败(该方法不支持长分隔符)
解决方案
通过读取完整文本、按长分隔符拆分条目、清理内容后转为CSV,具体实现代码如下:
import pandas as pd # 读取整个文本文件 with open(r'C:\Users\admin\Downloads\journal testing to csv small.txt', 'r', encoding='utf-8') as f: content = f.read() # 按分隔符拆分所有日记条目,过滤空条目 journal_entries = [entry.strip() for entry in content.split('Journal end') if entry.strip()] # 将条目转为DataFrame,每条占一行 df = pd.DataFrame({'journal_content': journal_entries}) # 导出为CSV文件 df.to_csv(r'C:\Users\admin\Downloads\journal testing csv.csv', index=False, encoding='utf-8')
代码说明
- 一次性读取整个文本内容,规避
read_csv对长分隔符的限制 - 使用
split('Journal end')拆分所有日记条目,strip()清理条目前后的换行和空格,过滤拆分后产生的空内容 - 将处理后的条目存入DataFrame,确保每条日记对应CSV的一行
- 导出时指定
index=False避免生成多余的索引列
内容的提问来源于stack exchange,提问作者Waters
相关产品推荐
相关产品推荐

