J'ai un grand sac de mots tableau (mots, et leur nombre) que j'ai besoin d'écrire dans un grand fichier plat csv.l'écriture de grands fichiers CSV - écrivain CSV dictionnaire semble être le problème
Lors des tests avec environ 1000 ou si les mots, cela fonctionne très bien - j'utiliser le dictwriter comme suit:
self.csv_out = csv.DictWriter(open(self.loc+'.csv','w'), quoting=csv.QUOTE_ALL, fieldnames=fields)
où fields
est la liste des mots (ie les clés, dans le dictionnaire que je passe à csv_out.writerow
).
Cependant, il semble que la mise à l'échelle soit horrible et que le nombre de mots augmente - le temps requis pour écrire une ligne augmente de façon exponentielle. La méthode dict_to_list
en csv
semble être l'instigateur de mes ennuis.
Je ne suis pas entièrement sur la façon de commencer même à optimiser ici? des routines CSV plus rapides que je pourrais utiliser?
bien - thats ce que je faisais au début, et il rend le code beaucoup messier, juste la façon dont il est en ce moment - ce serait vraiment le dernier recours. * Mise à jour: * c'est un sac d'analyse de mots destiné à R - Je dois créer une colonne pour chaque mot qu'il rencontre ... – Malang
@Malang: "Je dois créer une colonne pour chaque mot qu'il rencontre" . Si c'est votre exigence, pourquoi l'ajout de colonnes (ainsi que de lignes) vous dérange-t-il? Clairement, c'est ** O ** (n * m) et ça ne va pas bien évoluer. Quelle est votre question? –
bien - son fait presque intraitable de calcul, et j'espérais qu'il y avait quelques avenues pour l'optimisation ... – Malang