2010-04-16 38 views
1

我有一个非常大的CSV文件只包含两个字段(id,url)。我想用python做一些关于url字段的索引,我知道有一些工具比如Whoosh或者Pylucene。但我无法得到这些例子的工作。有人可以帮我弄这个吗?在Python中索引CSV文件内容

+1

你是什么意思索引? – 2010-04-16 23:31:37

回答

0

FILE.CSV内容:

a,b 
d,f 
g,h 
加载它全部变成一个巨大的字典

Python脚本:

#Python 3.1 
giant_dict = {id.strip(): url.strip() for id, url in (line.split(',') for line in open('file.csv', 'r'))} 

print(giant_dict) 
{'a': 'b', 'd': 'f', 'g': 'h'} 
+1

亲爱的主,你为什么要解析它而不是使用CSV模块? – moshez 2010-04-16 23:58:26

+0

问题是这个文件将超过5GB。所以我不能一次加载到内存中! – Hossein 2010-04-17 00:19:22

+0

你究竟想要做什么?你可以逐行阅读文件:for open in line('file.csv')。另外,为什么不只是安装9GB或RAM? – 2010-04-17 00:22:26

1

PyLucene是很容易的工作,但你有没有张贴您的例如我不知道你面临什么问题。

或者,当你只有key:value类型的数据时,可能会比Pylucene更好,像DB Berkeley DB(python绑定pybsddb)。它将像Python字典一样工作,并且应该比lucene更快或更快,您可以尝试。