替换python中的文本文件中的文本

时间:2014-05-13 17:02:47

标签: python python-3.x file-io

我正在尝试替换文本文件中的文本(让我们只调用文件test.txt),这是示例文本:

Math is good
Math is hard
Learn good math
be good at math
DO\SOMETHING\NOW

我想要类似的东西:

Math is good
Math is hard
Learn good science
be good at science
DO\SOMETHING\NOW

我正在尝试以下列方式使用fileinput

import fileinput
file = fileinput.input("Path/To/File/text.txt", inplace=True)
for line in file:
    print(line.replace("math", "science"))

问题是打印功能会自动附加" \ n"所以它会跳过一条新线。我尝试使用" sys.stdout.write(line.replace(" math"," science"))替换,但是在文本文件中输出了数字。那么我该如何有效地做到这一点,以便得到我想要的结果。我应该只是使用open并逐行进行并检查单词" math"弹出并替换这个词?任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:4)

您可以通过将print()关键字参数设置为空字符串来告诉end不要写新行:

print(line.replace("math", "science"), end='')

default value for end is '\n'

或者,您可以从line删除换行符:

print(line.rstrip('\n').replace("math", "science"))