如何修复Python文本处理中连字符拆分单词的合并错误?
解决连字符拆分单词的合并问题
嘿,我看你现在遇到的问题是:想把文本里带连字符拆分的单词合并回去,但直接用replace('-','')再split()后,app- lying变成了app和lying两个单词,而不是期望的applying。这问题其实很好解决,咱们一步步来:
问题出在哪?
你原文本里的拆分是app- lying——注意连字符后面跟着一个空格!当你直接移除所有连字符时,这部分就变成了app lying,split()自然会把它拆成两个独立的单词。
修正后的代码
我们需要精准替换“连字符+空格”这个组合,而不是盲目删掉所有连字符。这样就能把被拆分的单词无缝合并,同时不影响其他正常内容。
先给你修正后的基础版本(顺便帮你把原代码里变量名不一致的小问题也改了):
arq = open('speech.txt', 'r') content = arq.read() # 重点:替换 "- "(连字符加空格)为空白,合并拆分的单词 fixed_content = content.replace('- ', '') word_list = fixed_content.split() print(word_list) arq.close() # 别忘了关闭文件哦
如果想更规范、更安全地处理文件(避免忘记关闭文件导致的问题),推荐用with上下文管理器,它会自动帮你关闭文件:
with open('speech.txt', 'r') as arq: content = arq.read() fixed_content = content.replace('- ', '') word_list = fixed_content.split() print(word_list)
运行效果
执行上面的代码后,就能得到你想要的正确输出:
['this', 'is', 'a', 'simple', 'example', 'of', 'applying', 'translinelation', 'rules']
额外补充
如果你的文本里还有其他形式的连字符拆分(比如连字符后没空格,或者跨行的连字符),可能需要用正则表达式来处理,但针对你现在给出的文本内容,上面的方法完全够用啦~
内容的提问来源于stack exchange,提问作者Bruno
相关产品推荐
相关产品推荐

