Vous êtes ici : Accueil / Forums & ML / Forums Python / Forum général Python / Comment écrire un fichier texte en binaire ?

Comment écrire un fichier texte en binaire ?

Remonter à Forum général Python

Comment écrire un fichier texte en binaire ?

Envoyé par sergeblender le 4 Avril 2014 à 10:57

Bonjour,

Les fichiers .ply sont soit texte, soit binaire: http://fr.wikipedia.org/wiki/Format_de_fichier_de_polygones

J'écris le fichier texte sans problème à partir d'un string.

mais pour travailler avec meshlabserver, mon fichier doit être un binaire.

Ma fonction:
def write_ply(ply_file, points_str):
    '''points_str = list of string: "1 0 5.0\n" '''
    file = open(ply_file, "wb")
    file.write('''ply
format ascii 1.0
comment author: Skandal
element vertex {0}
property float x
property float y
property float z
element face 0
property list uchar int vertex_index
element edge 0
property int vertex1
property int vertex2
property uchar red
property uchar green
property uchar blue
end_header
{1}
'''.format(len(points_str), "".join(points_str)))

    file.close()
    
Comment écrire ce fichier en binaire ?

Je suis en python 2.7 et/ou 3.

Re: Comment écrire un fichier texte en binaire ?

Envoyé par jacko le 11 Avril 2014 à 16:23

Bonjour,

 

Il faudrait préciser ce que vous voulez dire par "écrire en binaire",

mais le module standard struct devrait répondre à votre besoin.

 

Cordialement.

Re: Comment écrire un fichier texte en binaire ?

Envoyé par sergeblender le 18 Avril 2014 à 11:45

Bonjour,

Merci pour votre réponse.

Une doc qui explique:

This document presents the PLY polygon file format, a format for storing graphical objects that are described as a collection of polygons. Our goal is to provide a format that is simple and easy to implement but that is general enough to be useful for a wide range of models. The file format has two sub-formats: an ASCII representation for easily getting started, and a binary version for compact storage and for rapid saving and loading.

J'ai une analogie avec:

Save an array to a text file:  http://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.html

et

Save an array to a binary file in NumPy .npy format: http://docs.scipy.org/doc/numpy/reference/generated/numpy.save.html

Je n'arrive à rien ni avec struct ni avec binascii  https://docs.python.org/2/library/binascii.html

L'ouverture du fichier avec l'option wb ne donne rien.

https://reference.wolfram.com/mathematica/ref/format/PLY.html le fait !

Je vais continuer en ouvrant mon fichier texte avec meshlab et en enregistrant en binaire.

Rendu par Ploneboard