擅长:python、mysql、java
<p>您正在单个行上循环,而添加新行的是<em><code>print</code></em>语句。以下方法可行:</p>
<pre><code>for data in open('file.txt'):
print data.rstrip('\n'),
</code></pre>
<p>使用尾随逗号,<code>print</code>不添加换行符,<code>.rstrip()</code>调用从换行符中删除尾随换行符。</p>
<p>或者,您需要将所有读取和剥离的行传递给<code>' '.join()</code>,而不是每个行本身。python中的字符串是to序列,因此当将第行中包含的字符串自身传递给<code>' '.join()</code>时,它将被解释为单独的字符。</p>
<p>以下代码使用了两个新技巧:上下文管理器和列表理解:</p>
<pre><code>with open('file.txt') as inputfile:
print ' '.join([line.rstrip('\n') for line in inputfile])
</code></pre>
<p><code>with</code>语句使用file对象作为上下文管理器,这意味着当我们处理完<code>with</code>语句下面缩进的块时,文件将自动关闭。<code>[.. for .. in ..]</code>语法从<code>inputfile</code>对象中生成一个列表,在该对象中,我们将每一行转换为一个版本,在结尾没有换行符。</p>