SORU
7 Temmuz 2010, ÇARŞAMBA


csv Python ek satır ekleme dönüş

Python 2.7 WinXPpro çalışan:

import csv
outfile = file('test.csv','w')
writer = csv.writer(outfile,delimiter=',',quoting=csv.QUOTE_MINIMAL)
writer.writerow(['hi','dude'])
writer.writerow(['hi2','dude2'])
outfile.close()

Oluşturur bir test.yani her satır, ekstra \r ile csv dosyası

test.csv

hi,dude\r\r\nhi2,dude2\r\r\n

beklenen yerine:

hi,dude\r\nhi2,dude2\r\n

Bu neden oluyor, ya da bu aslında istenen davranışı ise herhangi bir fikir?

CEVAP
18 Temmuz 2013, PERŞEMBE


@John machin iyi bir cevap verirken, her zaman en iyi yaklaşım değil. Örneğin, CSV yazar için, girdilerin tüm kodlamak sürece Python 3'te çalışmıyor. Ayrıca, eğer komut sys kullanmak isterse görünmüyor.akış olarak stdout.

Bunun yerine 'yazar oluştururken nitelik: . lineterminator ayarı öneririm

import csv
import sys

doc = csv.writer(sys.stdout, lineterminator='\n')
doc.writerow('abc')
doc.writerow(range(3))

Örnek Python 2 ve Python 3 üzerinde çalışacak ve istenmeyen yeni satır karakterleri neden olmaz. İstenmeyen yeni satır (Unıx işletim sistemlerinde EĞER atlama karakter) neden olabilir unutmayın.

Çoğu durumda, ancak, bu ikili bir davranış biçimi olarak tüm CSV tedavi daha çok tercih edilen ve daha doğal olduğuna inanıyorum. Düşünceleriniz için bir alternatif olarak bu cevap bulunur.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Exalto_Gamer

    Exalto_Gamer

    15 EKİM 2014
  • How It Should Have Ended

    How It Shoul

    5 Mart 2007
  • SavageLuxxxGaming - Daily NBA 2K15 & NBA Live 15 Enjoy And Subscribe!

    SavageLuxxxG

    11 Ocak 2013