使用Python按指定字符(句号)分割文本的实现疑问
嘿,我来帮你搞定这个文本拆分的问题!你的初始思路其实完全没问题——不管是逐字符处理还是直接替换字符都能实现需求,而且后者更简单高效哦。下面给你两种具体的实现方案,用Python来写的(毕竟处理文本超方便):
两种实现方案
方案一:字符串替换(最省心的方法)
这种方法直接把文本里所有的句号替换成「句号+换行符」,几行代码就能搞定:
# 读取原文件的全部内容 with open("input.txt", "r", encoding="utf-8") as input_file: raw_text = input_file.read() # 把每个句号替换成"."+换行符 processed_text = raw_text.replace(".", ".\n") # 将处理后的内容写入新文件 with open("output.txt", "w", encoding="utf-8") as output_file: output_file.write(processed_text)
小提示:如果你的文本里有类似「Mr.」「Dr.」这种带句号的缩写,不想把它们拆分换行的话,可以调整替换规则,比如只替换后面跟着空格的句号:
raw_text.replace(". ", ".\n "),这样就不会误处理缩写啦。
方案二:逐字符读取处理(贴合你的初始想法)
如果你更倾向于逐字符遍历处理,也很容易实现,代码如下:
# 同时打开输入文件和输出文件 with open("input.txt", "r", encoding="utf-8") as input_f, open("output.txt", "w", encoding="utf-8") as output_f: # 逐字符读取原文件内容 for char in input_f.read(): # 先把当前字符写入输出文件 output_f.write(char) # 如果当前字符是句号,就额外写入一个换行符 if char == ".": output_f.write("\n")
两种方案都能达到你要的效果:遇到句号就换行拆分段落。第一种适合大多数场景,处理大文件也更快;第二种更直观,完全符合你一开始的思路,你可以根据自己的偏好来选~
内容的提问来源于stack exchange,提问作者MadJ
相关产品推荐
相关产品推荐

