如何在python中连接一个字符串?

时间:2015-09-18 06:59:35

标签: python string concatenation

我尝试读取文件并输出一行。

文件:

how
are
you

代码:

infile = open('input', 'r')
for line in infile:
    line = line.rstrip('\n')
    print (line)

rstrip已经剥离'\n', 但是输出仍然分为3行。

how
are
you

如何将打印成单行?

5 个答案:

答案 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))