2013-08-20 7 views
5

Bir csv dosyasına birkaç tuple yazmaya çalışıyorum.Boş bir çizgi olmadan python'da bir csv dosyasında tuples nasıl yazılır

Bu denedim budur:

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() 

Bu çalıştı, ama beklendiği gibi değil.

screenshot of spreadsheet rows showing unwanted blank lines

ve bir metin editörü, dosya benziyor: E-tabloda boş satırları dikkat

0,1,2
< boş satıra >
3 , 4,5
< blank line >

(toplam 4 satır)

nasıl bu boş satırlar olmadan yazabilirim?

+0

Aslında kodunuz benim için gayet iyi çalışıyor mu? Örneğinde göstermediğin başka bir şey var mı? Csv kullanmadan –

+0

, 'w' ifadesini 'a' olarak değiştirin. Sonra out_file.write ("0,1,2 \ n") ve benzeri – Jean

+0

@ViktorKerkez No, bu tam olarak benim yaptığım şey. –

cevap

7

csv modülün kendi sonu hattı işlemeyi yapar ve belirli bir şekilde açılacak çıktı dosyası gerektirir:

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

Referans http://docs.python.org/2.7/library/csv.html?highlight=csv#csv.writer:

... onu fark yaratan platformlarda 'b' bayrağıyla açılmalıdır.

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

... o

Sizin boş satırlar

csv varsayılan "diyalekt" nedeniyle ... = '' yeni satır ile açılmalıdır modül, excel. Bu/satırbaşı içine \n karakterleri satır besleme \r\n linefeed ama çevirir (Windows) da \r\r\n sonuçlanan \r\n için \n çevirir "bu bir fark yaratır platformlarda" metin modunda çıkış dosyası açılırken. Bu, fazladan boş satırlara neden olur.

İlgili konular