Tek bir virgülle ayrılmış bir dizeyi csv.reader (..) gibi süslü bir şey kullanmadan ayrıştırma yolu var mı? split(',')
işlevini kullanabilirim, ancak geçerli bir sütun değeri virgülün kendisi içerdiğinde bu çalışmaz. Csv kütüphanesi, daha önce bahsedilen özel durumu doğru bir şekilde işleyen CSV dosyalarını ayrıştırmak için okuyuculara sahiptir, ancak bunları kullanamam çünkü sadece tek bir dizeyi ayrıştırmam gerekiyor. Bununla birlikte, Python CSV tek bir dizginin kendisini ayrıştırmaya izin veriyorsa, o zaman bu bana bir haber.Tek bir CSV dizesi ayrıştırılıyor mu?
5
A
cevap
11
: (aynı zamanda hafıza dosyalarını olarak da bilinir) bir dize buffer yazmak için StringIO kullanın dize:
>>> s = '"this is", "a test", "of the csv", "parser"'
Ve "bir satır döndüren bir nesne Her yineleme" için girdi, sadece bir listede dize sarın edebilirsiniz:
>>> r = csv.reader([s])
>>> list(r)
[['this is', 'a test', 'of the csv parser']]
Ve bu csv
modülü ile bir dize ayrıştırmak nasıl.
9
Tek bir dize csv
ile ayrıştırabilirsiniz.
reader(...)
csv_reader = reader(iterable [, dialect='excel']
[optional keyword args])
for row in csv_reader:
process(row)
The "iterable" argument can be any object that returns a line
of input for each iteration, such as a file object or a list. The
optional "dialect" parameter is discussed below. The function
also accepts optional keyword arguments which override settings
provided by the dialect.
Yani eğer: diyor csv
modülü için dokümantasyon, en yakından bakın
import csv
from StringIO import StringIO
s = "your string"
buff = StringIO(s)
reader = csv.reader(buff)
for line in reader:
print(line)
+0
Python 3 için io içe aktarma StringIO'yu kullanın [bkz.] (Https://docs.python.org/3/library/io.html#text-io) –
İlgili konular
- 1. Python'da bson dizgisi ayrıştırılıyor mu?
- 2. Normal ifade ikili dosya ayrıştırılıyor mu?
- 3. EntityFramework Tek bağlantı dizesi
- 4. Linq'in Toplama İşlevi, CSV Dizesi Oluşturma
- 5. PostgreSQL csv bir MySQL csv dışa aktarımından içe aktarılıyor mu?
- 6. Ruby 1.9.2 bir dosya oluşturmadan bir CSV dizesi dışa aktarma
- 7. Dize indirildiğinde enum ayrıştırılıyor
- 8. Neden geçersiz bir tarih gerçek bir tarih olarak başarıyla ayrıştırılıyor?
- 9. yuvalanmış json omurga koleksiyonlarına ayrıştırılıyor
- 10. Java üstel gösterimdeki bir sayı ayrıştırılıyor
- 11. https giriş yanıtından xml ayrıştırılıyor
- 12. URL dizesi içeriyorsa jQuery işlevi çalışmıyor mu?
- 13. İki RichTextbox'ın İçeriği Tek bir RichText dizesi olarak ekleme
- 14. 2.2GB JSON dosyası tutarsız olarak ayrıştırılıyor
- 15. javascript öğesinden bir tam stil dizesi belirleme (tek tek stil parametreleri değil)
- 16. Python (yeni kullanıcı) API çağrısından XML ayrıştırılıyor
- 17. dizesi
- 18. kullanarak bir sorgu dizesi
- 19. Bir sql dizesi
- 20. csv
- 21. csv
- 22. CSV
- 23. Bir csv dosyasından yazdırma python'u bir csv dosyasından nasıl durdurulur
- 24. Bir csv dosyasını python
- 25. CSV yüklenemedi başlık CSV yüklenemedi
- 26. gerektirenJs/TypeScript, çoklu sınıfları tek bir modülde birleştiriyor mu?
- 27. JQuery hariç tutulduğunda tek bir dosyaya gereksinim duyulmuyor mu?
- 28. jquery tek bir işlevde geçiş yapar ve kaybolur mu?
- 29. Sınırlayıcıyı ayırmadan ayırma dizesi
- 30. Tek bir komutla çoklu komutları tek tek
Kullanmak daha zarif olur 'iter (ler) yerine' 's '' (bir liste belirterek) yerine genel bir yineleyiciye. Ama benim +1 – RafaelC
'um var. Bu, dizenin değerler içinde satır beslemelerini alıntılamış olması durumunda işe yaramayacaktır. @ alecxe'nin cevabı daha mantıklı – swooby