2024-05-20 02:03:17 发布
网友
我正在尝试这个简单的代码来打印一个带有if条件的txt文件。 代码工作正常,但当输出被打印出来时,它有一个额外的空行。如何解决这个问题
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(line,end=' ')
line中的行末尾包含换行符。为了避免print函数添加另一个换行符(默认行为),您应该调用print('line', end='')来指定不需要额外的换行符
line
print
print('line', end='')
您可能正在对已经有最后一个换行符的字符串使用print——事实上,现在问题已经解决了,我们可以看到这种情况,因为您在file上使用了迭代器,这将生成一系列以换行符结尾的行(如果输入文件中没有换行符,则最后一行可能除外)
file
请注意,在数据项之后,print函数将默认写入一个额外的换行符(更具体地说,它将写入end参数指定的值,该参数默认为换行符)
end
可能的办法:
使用sys.stdout.write(不追加换行符):
sys.stdout.write
sys.stdout.write(text)
使用print但将其设置为写入空字符串,而不是在末尾换行:
print(text, end='')
在打印之前删除任何新行(原则上,这可能包括在字符串中间的换行符,但因为您的字符串来自迭代器在文件对象上,不应该有任何):
print(text.replace('\n', ''))
打印前请删除任何前导或尾随空格(包括换行符)-请注意,这可能包括其他空格:
print(text.strip())
print()默认情况下,在执行该命令时创建新行。请注意,尝试使用
或
line
中的行末尾包含换行符。为了避免print
函数添加另一个换行符(默认行为),您应该调用print('line', end='')
来指定不需要额外的换行符您可能正在对已经有最后一个换行符的字符串使用
print
——事实上,现在问题已经解决了,我们可以看到这种情况,因为您在file
上使用了迭代器,这将生成一系列以换行符结尾的行(如果输入文件中没有换行符,则最后一行可能除外)请注意,在数据项之后,
print
函数将默认写入一个额外的换行符(更具体地说,它将写入end
参数指定的值,该参数默认为换行符)可能的办法:
使用
sys.stdout.write
(不追加换行符):使用
print
但将其设置为写入空字符串,而不是在末尾换行:在打印之前删除任何新行(原则上,这可能包括在字符串中间的换行符,但因为您的字符串来自迭代器在文件对象上,不应该有任何):
打印前请删除任何前导或尾随空格(包括换行符)-请注意,这可能包括其他空格:
相关问题 更多 >
编程相关推荐