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='')
看