1

次の質問があります。出力ファイルを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入力は値だけでなく他の何かである可能性があるため、インポートします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()を呼び出すのと同じです。

一方で:

write(str)->なし。文字列strをファイルに書き込みます。

バッファリングのため、ディスク上のファイルが書き込まれたデータを反映する前に、flush()またはclose()が必要になる場合があることに注意してください。

于 2012-06-19T11:31:03.357 に答える