在txt文件中每次出现特定子字符串后,如何开始换行?

时间:2019-04-07 18:09:19

标签: python-3.x

我有一个名为“ Poo.txt”的txt文件: “如果您碰巧读过另一本关于 克里斯托弗·罗宾(Christopher Robin),您可能还记得他曾经有过天鹅(或 天鹅有克里斯托弗·罗宾(克里斯托弗·罗宾,我不知道是哪一个),还有他。 曾经称呼这天鹅维尼。那是很久以前的事了 我们说了再见,我们一起取了名字,因为我们没有想到 天鹅会再想要它。好吧,当爱德华·贝尔说 克里斯托弗·克里斯托弗(Christopher) 罗宾立刻说,不停地想,他是 维尼熊。他是。所以,正如我解释过的维尼 部分,我现在将解释其余部分”

我需要在子字符串“ en”之后开始新的一行。因此,输出将在一个新文件中:“ outfileq2.txt”,其中的文本将如图所示。 output in the "outfileq2.txt"

我尝试过这样的事情:

outfname = 'outfileq2.txt'
with open("Poo.txt") as f:

    with open(outfname, "w") as f1:
        f1.writelines()

2 个答案:

答案 0 :(得分:0)

阅读每一行后,您可以使用正则表达式更改您的字符串。

import re

outLine = re.sub("em","em\n"", line)

答案 1 :(得分:0)

您可以使用此代码检查子字符串是否存在于给定单词中,然后在每次获得子字符串时检查\ n

def exactMatch(text, lenText, curr_pos, pat, curr_pos_pat, lenPat):

    if curr_pos == lenText:
        return False
    if curr_pos_pat == lenPat:
        return True
    if text[curr_pos] == pat[curr_pos_pat]:
        return exactMatch(text, lenText, curr_pos + 1, pat, curr_pos_pat + 1,lenPat)
    return False
def contains(text, lenText, curr_pos, pat, curr_pos_pat, lenPat):
    if curr_pos == lenText:
        return False
    if text[curr_pos] == pat[curr_pos_pat]:
        if exactMatch(text, lenText, curr_pos, pat, 0, lenPat):
            return 1
        else:
            return contains(text, lenText, curr_pos + 1, pat, curr_pos_pat, lenPat)
    else:
        return contains(text, lenText, curr_pos + 1, pat, curr_pos_pat, lenPat)
text = input()
pat = input()
lenText = len(text)
lenPat = len(pat)
curr_pos_pat = 0
print(contains(text, lenText, 0, pat, curr_pos_pat, lenPat))