Alain BARTHE a écrit :
(snip)
Je pense que tu pourrais aussi utiliser le module struct, qui semble mieux adapté pour ton problème.
doh :(
C'est ça le problème avec Python : y a tellement de trucs dans la biblio standard qu'on oublie fréquemment de vérifier si y a pas déjà une bonne soluce quelque part...
Principe :
- définir une format décrivant la structure de tes enregistrements:
Exemple : Si ton enregistrement contient :
nom 30 caractères
prenom 20 caractères
tel 10 entiers
Tu crées un format = "30s20s10i"
import struct
format = "30s20s10i"
size = struct.calcsize (format)
in = open ("fichier.dat", "r")
out = open ("fichier.csv", "w")
while f:
data = in.read (size)
Attention, s'il y a des newlines en fin d'enregistrement, il faut en tenir compte dans la taille (et probablement dans le struct), en tenant compte des problèmes de portabilité entre plateformes pour le format des newlines.
nom, prenom, tel = struct.unpack (format, data)
print >> out, "%s,%s,%d;", % (nom,prenom,tel)
in.close()
out.close()
(snip)
Par contre, je ne sais pas si ce sera plus efficace.
<OP>
Pil, si tu tentes cette solution, je veux bien savoir le résultat (si ça fonctionne pour ton cas, et si oui si c'est plus performant).
</OP>