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

  • Alexey - servant of Christ

    Alexey - ser

    15 EYLÜL 2007
  • SPBedition

    SPBedition

    24 HAZİRAN 2013
  • The Scary Snowman

    The Scary Sn

    1 ŞUBAT 2011