我尝试读取文件并输出一行。
文件:
how
are
you
代码:
infile = open('input', 'r')
for line in infile:
line = line.rstrip('\n')
print (line)
rstrip已经剥离'\n'
,
但是输出仍然分为3行。
how
are
you
如何将打印成单行?
答案 0 :(得分:3)
在剥离换行符之后,只需将空字符串传递给print
函数中的end参数。
print (line, end = "")
print
默认情况下为每次迭代在新行中打印内容,但是通过将空字符串传递给end
参数,此默认行为将无法正常工作。如果您未能删除换行符,则会打印内容以及换行符。
答案 1 :(得分:3)
因为每次循环运行时都会独立调用print()
函数。每次打印时,输出都会开始在新行上打印。
答案 2 :(得分:1)
标题要求连接,但细节只是要求输出。 print
个答案处理后者,但如果要连接,则可以使用join
或+
>>> with open('input', 'r') as infile:
... output = ""
... for line in infile:
... output += line.rstrip('\n')
... print(output)
howareyou
但是,鉴于您可能希望字符串之间有空格,我建议您查看join
,它可以简单地与理解结合使用:
>>> with open('input', 'r') as infile:
... print(" ".join(line.rstrip(`\n`) for line in infile))
how are you
答案 3 :(得分:0)
如果使用python 2.7,则应使用以下语法:
print line,
答案 4 :(得分:0)
使2& 3兼容,你可以:
from __future__ import print_function
print('hello, world', end='')
所以你的代码可能是:
from __future__ import print_function
infile = open('input', 'r')
for line in infile:
line = line.rstrip('\n')
print(line, end='')
或者这个:
with open('input') as f:
lines = [line.strip() for line in f.readlines()]
print(' '.join(lines))