Python中如何以空行为分隔符将文本文件内容转换为段落列表
按空行分隔提取文本段落的实现方案
段落分隔的核心逻辑是识别去除首尾空白后长度为0的空行,同时拼接同一段落内的跨行内容,以下是两种可直接使用的实现方案:
方案1:基础遍历实现(易理解,支持自定义规则)
该方案逐行读取文件,缓存同一段落的内容,遇到空行时完成一个段落的拼接,适配各种特殊换行场景:
paragraphs = [] current_paragraph = [] with open('text.txt', encoding='utf8') as f: for line in f: # 去除行首尾的空格、换行符、制表符等空白字符 stripped_line = line.strip() if stripped_line: # 非空行加入当前段落缓存 current_paragraph.append(stripped_line) else: # 遇到空行且缓存有内容时,拼接为完整段落存入结果 if current_paragraph: paragraphs.append(' '.join(current_paragraph)) current_paragraph = [] # 补充最后一个段落(末尾通常没有空行收尾) if current_paragraph: paragraphs.append(' '.join(current_paragraph))
运行后得到的paragraphs就是目标列表,每个元素对应一个完整段落。
方案2:简洁批量处理实现
如果不需要对每行内容做复杂预处理,可以直接读取全量内容后按分隔规则拆分:
with open('text.txt', encoding='utf8') as f: content = f.read() # 按两个连续换行拆分段落,再清洗每个段落内的多余空白 paragraphs = [ ' '.join(para.split()) for para in content.split('\n\n') if para.strip() ]
内容的提问来源于stack exchange,提问作者sudden_clarity_clarence
相关产品推荐
相关产品推荐

