2010-04-16 8 views
1

J'ai un très gros fichier CSV contenant seulement deux champs (id, url). Je veux faire de l'indexation sur le champ url avec python, je sais qu'il y a des outils comme Whoosh ou Pylucene. mais je ne peux pas obtenir les exemples pour travailler. Quelqu'un peut il m'aider avec ça?Indexation du contenu d'un fichier CSV en Python

+1

Que voulez-vous dire par indexation? –

Répondre

0

contenu file.csv:

a,b 
d,f 
g,h 

script Python qui charge le tout dans un dictionnaire géant:

#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

Cher seigneur, pourquoi vous l'analyse vous-même au lieu d'utiliser le module CSV ?? – moshez

+0

le problème est que ce fichier sera plus de 5 Go. donc je ne peux pas le charger dans la mémoire à la fois! – Hossein

+0

Qu'essayez-vous exactement de faire? Vous pouvez lire le fichier ligne par ligne avec ceci: pour line in open ('file.csv'). Aussi, pourquoi ne pas simplement installer 9 Go ou RAM? –

1

PyLucene est très facile de travailler avec, mais comme vous l'avez pas encore posté de votre Par exemple, je ne suis pas sûr du problème auquel vous faites face.

Alternativement, lorsque vous avez seulement la clé: type valeur de données, peut-être mieux que Pylucene serait DB comme Berkeley DB (bindings python pybsddb). Cela fonctionnera comme un dictionnaire python et devrait être plus ou aussi rapide que lucene, vous pouvez essayer cela.