输出被打印,但它有一个额外的空行

2024-05-20 02:03:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试这个简单的代码来打印一个带有if条件的txt文件。 代码工作正常,但当输出被打印出来时,它有一个额外的空行。如何解决这个问题

with open('test.txt') as file:
    for line in file:
        if 'Efficient AP Image Upgrade ..... Enabled' in line:
            break
        print(line)

enter image description here


Tags: 文件代码intesttxtforifas
3条回答

print()默认情况下,在执行该命令时创建新行。请注意,尝试使用

print(line,end='')

print(line,end=' ')

line中的行末尾包含换行符。为了避免print函数添加另一个换行符(默认行为),您应该调用print('line', end='')来指定不需要额外的换行符

您可能正在对已经有最后一个换行符的字符串使用print——事实上,现在问题已经解决了,我们可以看到这种情况,因为您在file上使用了迭代器,这将生成一系列以换行符结尾的行(如果输入文件中没有换行符,则最后一行可能除外)

请注意,在数据项之后,print函数将默认写入一个额外的换行符(更具体地说,它将写入end参数指定的值,该参数默认为换行符)

可能的办法:

使用sys.stdout.write(不追加换行符):

sys.stdout.write(text)

使用print但将其设置为写入空字符串,而不是在末尾换行:

print(text, end='')

在打印之前删除任何新行(原则上,这可能包括在字符串中间的换行符,但因为您的字符串来自迭代器在文件对象上,不应该有任何):

print(text.replace('\n', ''))

打印前请删除任何前导或尾随空格(包括换行符)-请注意,这可能包括其他空格:

print(text.strip())

相关问题 更多 >