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

  • InfoPuppet

    InfoPuppet

    15 Kasım 2011
  • New Challenger - Game Reviews

    New Challeng

    20 Temmuz 2006
  • The10HourMan

    The10HourMan

    28 EYLÜL 2012