Python将输出打印到文件会添加额外的空行

Python将输出打印到文件会添加额外的空行,python,file,replace,Python,File,Replace,我正在编写一个简单的程序,用“香蕉”一词替换文本文件中的一个词。下面是它当前的结构: file = filedialog.askopenfilename(initialdir="/Users/Alex/Desktop", title="Open File", filetypes=(("TXT files", "*.txt"), )) for line in fileinput.FileInput(file,inpla

我正在编写一个简单的程序,用“香蕉”一词替换文本文件中的一个词。下面是它当前的结构:

file = filedialog.askopenfilename(initialdir="/Users/Alex/Desktop", title="Open File", filetypes=(("TXT files", "*.txt"), ))
for line in fileinput.FileInput(file,inplace=1):
    if 'sports' in line:
        temp = line.split()
        rep = temp[0]
        line = line.replace(rep, "Banana")
    print(line)
该单词按预期被替换,但是每当我检查新文件时,每行文本之间都有一个空行。应该是这样的:

Cats are cute.
Banana enjoy sports.
I like to wear jackets.
Green is my favorite color.
Cats are cute.

Banana enjoy sports.

I like to wear jackets.

Green is my favorite color.

但实际上,它看起来是这样的:

Cats are cute.
Banana enjoy sports.
I like to wear jackets.
Green is my favorite color.
Cats are cute.

Banana enjoy sports.

I like to wear jackets.

Green is my favorite color.

如何去除文件中每行文本之间的空行?

< P> <代码>打印()/代码>函数在默认情况下在打印语句末尾添加换行符。如果要删除它,请传递一个空字符串作为第三个参数。有关详细信息,请参阅文档:

迭代文件(或类似文件的对象)时,每行以换行符结尾
\n

因此,您需要将其剥离,因为
打印
功能将添加另一个
\n

fileinput.fileinput(file,inplace=1)中的行的
:
line=line.rstrip()#删除换行符
如果“运动”符合:
temp=line.split()
rep=temp[0]
行=行。替换(代表“香蕉”)
打印(行)
您还可以使用
end
关键字参数告诉
print
不要打印换行符:

fileinput.fileinput(file,inplace=1)中的行的
:
如果“运动”符合:
temp=line.split()
rep=temp[0]
行=行。替换(代表“香蕉”)
打印(第行,结束=“”)

默认情况下,
打印
会在您传递的任何内容后添加额外的换行符。你可以用它来改变这个

print(line, end='')