如何合并两个Python脚本实现分句分段并按<end>标记输出多文件
Python脚本合并实现方案
完整可运行代码
import re def main(): # 读取原始输入文件内容 with open("input.txt", "r", encoding="utf-8") as input_file: raw_text = input_file.read() # 第一步:按句末标点拆分所有句子为独立段落 # 正则匹配中英文句末标点及后续空白字符,替换为标点+双换行实现分段 sentence_splited_text = re.sub(r"([。!?.!?])\s*", r"\1\n\n", raw_text) # 第二步:按<end>标记拆分内容,过滤空块 content_blocks = [ block.strip() for block in sentence_splited_text.split("<end>") if block.strip() ] # 输出为编号文件 for serial_num, block_content in enumerate(content_blocks, start=1): with open(f"{serial_num}.txt", "w", encoding="utf-8") as output_file: output_file.write(block_content) if __name__ == "__main__": main()
关键逻辑说明
- 正则规则
r"([。!?.!?])\s*"可匹配中英文常用句末标点,括号用于捕获标点本身避免替换时丢失,\s*匹配标点后任意数量的空格、换行符,替换为\1\n\n即可保证每个句子末尾带两个换行,实现单独成段的格式。 - 若需要匹配其他特殊句末标点(如省略号
…),直接将符号添加到正则的[。!?.!?]字符组内即可。 - 读写文件统一指定
encoding="utf-8",可避免中英文内容乱码问题。
内容的提问来源于stack exchange,提问作者Simon Ante
相关产品推荐
相关产品推荐

