请求将特定格式的文本文件转换为CSV文件
把特定格式的文本转成CSV?看这两种方案就行
我完全懂你要处理的文本结构——每条记录就是「列1内容 → 一行全是=====的分隔线 → 多行的列2内容 → 三个空行收尾」,要把这玩意儿转成规整的CSV,每一行对应一条记录,列1和列2各占一列对吧?
下面给你两种实用的方案,不管会不会写代码都能搞定:
方案一:Python脚本(推荐,适合批量处理)
这是最省心的方式,尤其是文件里记录多的时候,跑个脚本几分钟就搞定。直接复制下面的代码,改好输入输出文件路径就行:
import csv # 这里改成你的输入文本文件路径 input_file = "your_input.txt" # 这里改成你要输出的CSV文件路径 output_file = "converted_output.csv" # 读取文件内容,按三个空行拆分每条记录 with open(input_file, 'r', encoding='utf-8') as f: content = f.read() # 拆分记录,同时过滤掉可能的空记录 records = [r for r in content.split('\n\n\n') if r.strip()] # 写入CSV文件 with open(output_file, 'w', newline='', encoding='utf-8') as csvfile: # 用QUOTE_ALL确保多行文本、含逗号的内容能被正确识别 writer = csv.writer(csvfile, quoting=csv.QUOTE_ALL) # 先写表头 writer.writerow(['列1', '列2']) for record in records: # 按分隔线拆分列1和列2 parts = record.split('\n=========================\n') if len(parts) != 2: print(f"跳过格式有问题的记录:{record[:50]}...") continue col1 = parts[0].strip() # 如果你想保留列2里的换行,就删掉下面的replace部分 col2 = parts[1].strip().replace('\n', ' ') writer.writerow([col1, col2]) print(f"搞定!转换后的CSV已经存到 {output_file} 里了")
代码里的小细节:
- 用
csv.QUOTE_ALL是为了避免列2里的逗号、换行把CSV格式搞乱,所有单元格都会被双引号包裹,Excel或者其他CSV阅读器都能正确解析 - 如果你想保留列2里的换行(比如原文本里的多行内容想在CSV里也显示成换行),直接删掉
col2那行的.replace('\n', ' ')就行,双引号会帮你处理好换行 - 如果你的文本是Windows系统下的(换行是
\r\n),把拆分记录的'\n\n\n'改成'\r\n\r\n\r\n'就行
方案二:手动替换(适合少量记录)
要是你不想写代码,用普通的文本编辑器(比如Notepad++、VS Code)就能搞定:
- 先打开你的文本文件,把三个空行替换成一个特殊标记,比如
|RECORD_END|(确保这个标记不在你的文本内容里) - 把所有的分隔线
=========================替换成逗号, - (可选)把列2里的换行替换成空格,或者如果你想保留换行,就把每一条记录的列2部分用双引号包裹
- 最后把
|RECORD_END|替换成换行,再手动加上表头列1,列2,然后把文件保存成.csv格式就行
内容的提问来源于stack exchange,提问作者Ajni K
相关产品推荐
相关产品推荐

