如何避免 python 3x 中的 readline() 函数中出现新行? [重复]

问题描述 投票:0回答:3

我是Python编程新手。我遵循了“Learn python the hard way”一书,但它是基于 python 2x 的。

def print_one_line(line_number,f):
    print(line_number,f.readline())

在此函数中,每次打印一行新行

1 gdfgty

2 yrty

3 l

我阅读了Python 2中的文档,如果我在readline()之后放置一个,(逗号) 那么它不会打印新的 。 这是纪录片:

为什么文件中的行与行之间有空行?这 readline() 函数返回 那是在文件末尾 那条线。这意味着打印的 正在添加到其中 已由 readline() 函数返回。要更改此行为,只需添加一个, (逗号)在打印末尾,这样它就不会打印自己的 .

当我使用 python 2x 运行文件时,就可以了,但是当我在 python 3x 中运行文件时,则会打印换行符。如何避免 python 3x 中的换行符?

python python-2.7 python-3.x newline
3个回答
6
投票

由于您的内容已包含所需的换行符,请使用可选的

print()
参数告诉
end
函数不要添加任何换行符:

def print_one_line(line_number,f):
    print(line_number,f.readline(), end='')

2
投票

除了其他方式,你还可以使用:

import sys
sys.stdout.write(f.readline())

适用于迄今为止的每个 Python 版本。


1
投票

您可以从输入中删除它,而不是在输出中跳过换行符:

print(line_number, f.readline().rstrip('\n'))
© www.soinside.com 2019 - 2024. All rights reserved.