1

我有以下问题。如何逐行打印输出文件。我能想到的一个简单的例子如下。任何想法?

import codecs
output=codecs.open('output.txt','w', encoding='UTF-8')
for i in range(5):
   output.writelines(str(i)+'\n')
output.close()

我之所以导入codecs,是因为输入可能是其他内容,而不仅仅是 value i

我得到以下结果:

01234

代替:

0
1
2
3
4
4

2 回答 2

4

您的代码确实输出换行符。检查您的编辑器是否识别\n换行符。然而,它这样做是偶然的。writelines需要一系列行:

with open('output.txt','w', encoding='UTF-8') as output:
  output.writelines(str(i)+'\n' for i in range(5))
于 2012-06-19T11:32:16.317 回答
0

尝试使用write而不是writelines.

writelines(sequence_of_strings) -> 无。将字符串写入文件。

请注意,不添加换行符。序列可以是任何产生字符串的可迭代对象。这相当于为每个字符串调用 write()。

另一方面:

写(str)-> 无。将字符串 str 写入文件。

请注意,由于缓冲,在磁盘上的文件反映写入的数据之前,可能需要使用 flush() 或 close()。

于 2012-06-19T11:31:03.357 回答