【发布时间】:2011-05-20 08:54:46
【问题描述】:
我有一个包含数千行的生成文件,如下所示:
CODE,XXX,DATE,20101201,TIME,070400,CONDITION_CODES,LTXT,PRICE,999.0000,QUANTITY,100,TSN,1510000001
有些行的字段较多,有些行的字段较少,但都遵循相同的键值对模式,并且每行都有一个 TSN 字段。
在对文件进行一些分析时,我编写了如下循环来将文件读入字典:
#!/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)
...这很好,完全符合我的要求(print 只是一个简单的例子)。
但是,对我来说,它并没有特别“pythonic”的感觉:
dict(zip(fields[::2], fields[1::2]))
这只是感觉“笨拙”(它在字段上迭代了多少次?)。
有没有更好的方法在 Python 2.6 中只使用标准模块?
【问题讨论】:
-
我认为这已经是 Pythonic 了。
-
您只对 TSN 记录感兴趣吗?或者您打算将其扩展到所有记录类型?
标签: python parsing dictionary