Python 输出被打印,但它有一个额外的空行
我正在尝试这个简单的代码来打印一个带有if条件的txt文件。 代码工作正常,但当输出被打印出来时,它有一个额外的空行。如何解决这个问题Python 输出被打印,但它有一个额外的空行,python,Python,我正在尝试这个简单的代码来打印一个带有if条件的txt文件。 代码工作正常,但当输出被打印出来时,它有一个额外的空行。如何解决这个问题 with open('test.txt') as file: for line in file: if 'Efficient AP Image Upgrade ..... Enabled' in line: break print(line) 第行中的行末尾包含换行符。要避免使用print函数添加
with open('test.txt') as file:
for line in file:
if 'Efficient AP Image Upgrade ..... Enabled' in line:
break
print(line)
第
行
中的行末尾包含换行符。要避免使用print
函数添加另一个换行符(默认行为),应调用print('line',end='')
指定您不需要额外的换行符。您可能正在对已经有最后一个换行符的字符串使用print
——事实上,现在问题已经解决了,我们可以看到这种情况,因为您在文件上使用了迭代器,这将产生一系列以换行符结尾的行(如果输入文件中没有换行符,则最后一行可能除外)
请注意,在数据项之后,print
函数将默认写入额外的换行符(更具体地说,它将写入默认为换行符的end
参数指定的值)
可能的办法:
使用sys.stdout.write
(不追加换行符):
使用print
,但将其设置为写入空字符串,而不是在末尾换行:
print(text, end='')
在打印之前删除任何新行(原则上,这可能包括在字符串中间的换行符,但因为您的字符串来自迭代器在文件对象上,不应该有任何):< /P>
打印前请删除任何前导或尾随空格(包括换行符)-请注意,这可能包括其他空格:
print(text.strip())
print()默认情况下,在执行该命令时创建新行。请注意,尝试使用
print(line,end='')
或
要删除尾随新行,可以从行的右侧剥离新行:
打印(text.rstrip('\n'))
print(text.strip())
print(line,end='')
print(line,end=' ')