我想从一个(非常大的、空格分隔的、两列的)文本文件中读取数据到 Python 字典中。我尝试使用 for 循环来做到这一点,但这太慢了。更快的是使用 numpy loadtxt 将其读取到结构数组中,然后将其转换为字典:
data = np.loadtxt('filename.txt', dtype=[('field1', 'a20'), ('field2', int)], ndmin=1)
result = dict(data)
但这肯定不是最好的方法吗?有什么建议吗?
我需要其他东西的主要原因是以下不起作用:
data[0]['field1'].split(sep='-')
它导致错误消息:
TypeError: Type str doesn't support the buffer API
如果 split() 方法存在,为什么我不能使用它?我应该使用不同的 dtype 吗?还是有不同的(快速)方式来读取文本文件?还有什么我想念的吗?
版本:python 版本 3.3.2 numpy 版本 1.7.1
编辑:
更改data['field1'].split(sep='-')
为data[0]['field1'].split(sep='-')