aşağıdaki gibi hatların binlerce oluşturulmuş bir dosya var: CODE,XXX,DATE,20101201,TIME,070400,CONDITION_CODES,LTXT,PRICE,999.0000,QUANTITY,100,TSN,1510000001
Metin satırından sözlük nasıl oluşturulur?
Bazı hatlar
daha fazla alan ve diğerleri daha az olması, ancak tüm anahtar-değer çiftleri aynı kalıbı takip ve her satır bir sahiptir TSN alanı.
dosya üzerinde bazı analizler yaparken, ben yazdım gibi bir döngü bir sözlüğüne dosyasını okumak için aşağıdaki: için bunu istiyorum tam olarak ne
#!/usr/bin/env python
from sys import argv
records = {}
for line in open(argv[1]):
fields = line.strip().split(',')
record = dict(zip(fields[::2], fields[1::2]))
records[record['TSN']] = record
print 'Found %d records in the file.' % len(records)
... gayet iyi ve yapar (print
sadece önemsiz bir örnektir).
Ancak, benim için özellikle "pythonic" hissetmez ve çizgi ile: (? O alanlar üzerinde yineleme yok kaç kez) sadece "aksak" hissediyor
dict(zip(fields[::2], fields[1::2]))
.
Python 2.6'da bunu yapmak için standart modüller ile daha iyi bir yol var mı?
Bunun olabildiğince pythonic olduğunu düşünüyorum. –
Sadece TSN kayıtlarında ilgileniyor musunuz? Yoksa bunu tüm kayıt türlerine genişletmeyi mi düşünüyorsunuz? – marcog