如何用Python将CSV转为指定短句列表并写入带表头的新CSV
解决方案
以下是实现需求的Python代码,包含文本拆分逻辑和新CSV文件的写入:
import csv import re # 读取原CSV文件 with open('file_1.csv', 'r', newline='', encoding='utf-8') as crimefile: reader = csv.reader(crimefile) # 获取CSV中的长文本内容(根据输入格式,CSV仅含一行目标文本) raw_text = next(reader)[0] # 预处理文本:替换所有换行/连续空白为单个空格,清理首尾空白 processed_text = re.sub(r'\s+', ' ', raw_text.strip()) # 按「句号+空格」「逗号+空格」拆分文本,得到目标短句列表 short_sentences = re.split(r'[.,] ', processed_text) # 过滤拆分后可能出现的空字符串,确保列表有效性 short_sentences = [sentence.strip() for sentence in short_sentences if sentence.strip()] # 写入带"Text"表头的新CSV文件 with open('output.csv', 'w', newline='', encoding='utf-8') as outfile: writer = csv.writer(outfile) writer.writerow(['Text']) # 写入表头 for sentence in short_sentences: writer.writerow([sentence]) # 逐个写入短句 # 打印结果验证 print(short_sentences)
代码说明
- 读取原文件:用
with语句保证文件自动关闭,通过next(reader)[0]直接提取CSV中的长文本。 - 文本预处理:用正则表达式合并所有连续空白(包括换行、多空格),避免拆分时产生无效内容。
- 拆分短句:以
[.,]作为分隔符,精准拆分出符合预期的短句格式;该正则表示匹配「句号或逗号后跟空格」的位置进行分割。 - 过滤空值:清理拆分后可能出现的空字符串,保证最终列表无无效条目。
- 写入新CSV:创建带指定表头的新文件,将每个短句作为单独一行写入。
执行后,output.csv会生成符合要求的短句列表,同时控制台会打印拆分后的短句数组。
内容的提问来源于stack exchange,提问作者Masud Al Nahid
相关产品推荐
相关产品推荐

