替换循环错误

时间:2017-10-30 03:43:29

标签: python

我正在尝试使用一个循环,为我添加到.txt文件中的句子添加句点 但是,每次运行循环时,我都会看到结果以每次添加句点的代码结束。

    sentences = input_file.read()
    matches = re.finditer("('The dog is happy",sentences,re.MULTILINE)
    if matches:
    for match in matches:
        temp_match = match[1]
        sentences = sentences.replace(temp_match, temp_match + '.')
    output_file.write(sentences)

    input_file.close()
    output_file.close()

我得到的错误的一个例子是:

The dog is happy.
The dog is happy..
The dog is happy...

我该怎么做才能阻止这个循环?

1 个答案:

答案 0 :(得分:0)

你的正则表达式并不关心你已经添加了一段时间。它在任何时期之前找到文本,然后用相同的东西替换它,加上一个句点,因此在每次迭代中累积句号

你如何读取文件的行,检查它们是否已经在一段时间内结束,如果没有,只需添加它?

with open("in.txt") as input_file, open("out.txt") as output_file:
    for line in input_file:
        if not line.rstrip().endswith("."):
            output_file.write(line.rstrip() + r".\n")
        else:
            output_file.write(line) 

如果你真的需要正则表达式,请在循环中检查它。无需finditer