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

  • brokenbellsVEVO

    brokenbellsV

    11 EYLÜL 2009
  • Charles Nesson

    Charles Ness

    27 NİSAN 2006
  • Dom Esposito

    Dom Esposito

    26 Mayıs 2011