Bonjour
Je suis en train de réaliser un exporteur 3d pour mon logiciel favoris : Blender.
Or comme vous le savez surement, le langage de script de Blender, est le python. D'où ma venue ici
Je cherche donc une solution optimale pour encoder mes données.
Le fichier est composé de 4 ou 5 lettres différentes du style "v" pour vertice, "f" pour face. Mais il est surtout composé de nombres à virgules.
Avec le code suivant, j'ai pu déterminer l'encodage par défaut :
Ce qui me renvoie 'ascii', or on ne peut pas dire que ça soit la meilleure solution (1 octet par symbole, ça le fait pas).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 import sys print sys.getdefaultencoding()
Les fichiers seront composés à 98% de nombres à virgule. En moyenne, chaque nombre à virgule a 7 chiffres significatifs. En ASCII, ça donne donc, exactement 8 octets par nombre. Alors qu'en norme IEEE754, par exemple, ça donnerait exactement 4 octets. On arrive, alors, à diviser par deux la taille d'un fichier 3D. Ce n'est pas négligeable.
Ainsi, je compte utiliser la fonction :
Elle permettra, je l'espère, de choisir un type d'encodage plus approprié.
Code : Sélectionner tout - Visualiser dans une fenêtre à part sys.setdefaultencoding()
J'ai trouvé une liste des encodages disponibles ici.
J'aimerai donc savoir ce que vous me conseillez comme encodage.
La solution devrait surtout tenir compte du fait qu'il faut écrire de nombreux nombres à virgules (float, double).
Après les séparations peuvent très bien se faire par un autre moyen que des lettres.
En vous remerciant d'avance,
Cordialement,
Vi.
Partager