pil91 a écrit :
On 10 sep, 17:03, Christophe <chris.cavala...@free.fr> wrote:
pil91 a écrit :
Bonjour, j'ai besoin de transformer en format csv délimité, des
fichiers fixes.
Le problème c'est que ces fichiers peuvent être très gros, plusieurs
millions de lignes et plusieurs milliers de caractères par ligne.
J'ai donc écrit ce code sous windows en Python 2.5.2, qui, je pense
pourrait être bien optimisé.
Merci d'avance pour vos suggestions.
=========
# _*_ coding: utf8 _*_
#!/usr/bin/env python
# Auteur : Philippe Lotton
# Date de création:
import sys
import datetime
C'est pas une suggestion d'optim (enfin, ça pourrait le devenir) mais y
a-t-il une raison pour laquelle vous n'utilisez pas le module standard
csv ? Au début, je pensais que vous aviez écrit votre solution pour
justement être plus performant mais en regardant le source de csv.py, je
constate que celui-ci délègue la majorité du travail à un module et C.
En fait si, c'est bien une suggestion d'optim après tout.
Je pensais améliorer les choses en remplacant la concaténation de ma
chaine un append dans un tableau, puis un join
(...)
Excès d'autosatisfaction, c'est quif quif, 18s, sur 1 000 000
d'enregistrement avec cette structure
Ah oui, à ce sujet l'implémentation CPython optimise automatiquement les longues suites de concaténations dans une même string de la façon dont tu le fais. Avec une version un peu plus ancienne de Python, tu aurais certainement vu une très grande amélioration.