Not: Ekstra satırın bir Windows sistemine nasıl eklendiğinden dolayı bu tercih edilen bir çözüm değildir. Python belgesinde belirtildiği gibi :
Csvfile bir dosya nesnesiyse, bunun fark yaratacağı platformlarda 'b' bayrağıyla açılması gerekir.
Windows, fark yaratan böyle bir platformdur. Aşağıda açıkladığım gibi satır sonlandırıcıyı değiştirmek sorunu çözmüş olsa da, dosyayı ikili modda açarak sorun tamamen önlenebilir. Bu çözümün daha "elegent" olduğu söylenebilir. Hat sonlandırıcısıyla "uğraşmak", bu durumda, bir unix sistemi üzerinde ikili modda bir dosyayı açmanın hiçbir etki yaratmayacağı bu durumda sistemler arasında kaydedilemez bir kodla sonuçlanırdı. yani. çapraz sistem uyumlu kod ile sonuçlanır.
Gönderen Python Dokümanlar :
Windows'ta, moda eklenen 'b' dosyayı ikili modda açar, bu nedenle 'rb', 'wb' ve 'r + b' gibi modlar da vardır. Windows üzerinde Python metin ve ikili dosyalar arasında bir ayrım yapar; metin dosyalarındaki satır sonu karakterleri, veriler okunduğunda veya yazıldığında otomatik olarak biraz değişir. Dosya verilerindeki bu perde arkasındaki değişiklik ASCII metin dosyaları için iyidir, ancak JPEG veya EXE dosyalarındaki böyle ikili verileri bozar. Bu tür dosyaları okurken ve yazarken ikili modu kullanmaya çok dikkat edin. Unix'te, moda bir 'b' eklemek zarar vermez, böylece tüm ikili dosyalar için platformdan bağımsız olarak kullanabilirsiniz.
Orijinal :
Fazladan boş satırlar alıyorsanız, csv.writer için isteğe bağlı paramaterlerin bir parçası olarak, çizgi işaretleyiciyi değiştirmeniz gerekebilir ( buradaki bilgiler ). Aşağıdaki örnek python sayfası csv belgelerinden uyarlanmıştır . '\ N' yerine olması gereken her şeyi değiştirin. Bu sorundaki karanlıkta sadece bir bıçak olduğu için bu işe yarayıp yaramayabilir, ama benim en iyi tahminim.
>>> import csv
>>> spamWriter = csv.writer(open('eggs.csv', 'w'), lineterminator='\n')
>>> spamWriter.writerow(['Spam'] * 5 + ['Baked Beans'])
>>> spamWriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])