2013-08-20 24 views
5

私はcsvファイルに2つのタプルを書き込もうとしています。空白行なしのPythonでcsvファイルにタプルを書く方法

これは私が試したものです:

import csv 
out_file = open('csv_write.csv', 'w') 
writer = csv.writer(out_file) 
writer.writerow((0, 1, 2)) 
writer.writerow((3, 4, 5)) 
out_file.close() 

これは働いたが、期待できないとして。

screenshot of spreadsheet rows showing unwanted blank lines

をテキストエディタで、ファイルは次のようになります:スプレッドシート内の空白行に注目してください

0,1,2
< 空白行 >
3 、4,5
< 空白行 >

(合計4行)

どのように私はこれらの空白行せずに書くことができますか?

+0

実際、あなたのコードは完全に正常に動作していますか?あなたの例に示していないことがありますか? –

+0

csvを使用せずに 'w'を 'a'に変更してください。その後out_file.write( "0,1,2 \ n")など – Jean

+0

@ViktorKerkezいいえ、これはまさに私がやったことです。 –

答えて

7

csvモジュールは、独自の行末処理を行い、そして特定の方法でオープンする出力ファイルが必要です。

out_file = open('csv_write.csv', 'wb')    # Python 2.x 
out_file = open('csv_write.csv', 'w', newline='') # Python 3.x 

リファレンスhttp://docs.python.org/2.7/library/csv.html?highlight=csv#csv.writer

...それ違いが生じるプラットフォームでは 'b'フラグを使って開かなければなりません。

そしてhttp://docs.python.org/3.3/library/csv.html?highlight=csv#csv.writer

...それは '=' 改行で開かれる必要があります...

あなたの空白行はcsvのデフォルトの "方言" によるものですモジュールはexcelです。これは、/キャリッジリターンに\n文字を改行\r\n改行が、平行移動さ(Windowsの場合)\r\r\nその結果、\r\nから\n変換「それは違いを作るプラットフォームの」テキストモードで出力ファイルを開きます。これにより余分な空白行が発生します。

関連する問題