2016-04-09 19 views
0

Ben şu şekilde biçimlendirilmiş bir alan sahip olduğu bir CSV dosyası ayrıştırmak çalışıyorum. Böyle şeylerden nasıl kaçınabilirim? Şimdi ne yapıyorum geçerli:numpy.genfromtxt öğesini kullanarak bir CSV alanını aşağıdaki biçimle nasıl ayrıştırabilirsiniz?</p> <pre><code>[float,float,float] </code></pre> <p>sorun olduğunu genfromtxt CSV satır için ayırıcı olarak benim dizinin içindeki virgül tanır geçerli:

genfromtxt(csv, skip_header=2, dtype=None, delimiter=',') 

Teşekkür

cevap

1

genfromtxt

float, float, float 
float, float, float 

gibi satırlar Bu tırnak veya parantez işlemez bekliyor. Başka bir deyişle, gerçek csv yapısı, iç gruplamalar veya 'alanlar' olmaksızın basit 2d'dir.

genfromtxt, yapı ekleyen daha karmaşık bir dtype verebilir.

Python csv okuyucu, tırnak işaretlerini işleyebilir ve [] gibi tırnakları işlemek için talimat verebileceğinden şüpheleniyorum. Ancak sonuç, 'alıntılanan' metin için bir dizgedir.

genfromtxt herhangi bir yinelenen girişten girişi kabul eder. Bu yüzden, dosya satırını okuyan, köşeli ayraçları kaldıran, sınırlayıcıları gereken şekilde ekleyen ve bu satırı genfromtxt'a geçiren küçük bir işlev yazabilirsiniz.

Başlangıç ​​ve özellikle küçük dosyalar için, her şeyi satırların bir listesi olarak yükleyin (readlines) ve bu satırları düz sınırlı dizelere göre masaj yapın. Sonra bunu genfromtxt'a verin.