Foros del Web » Programando para Internet » Python »

Archivos Binarios

Estas en el tema de Archivos Binarios en el foro de Python en Foros del Web. Hola. Ante todo: perdón por las aberraciones que pueda cometer contra el conocimiento y contra Python mismo. Mi duda es si puedo hacer lo mismo ...
  #1 (permalink)  
Antiguo 07/05/2010, 07:42
Avatar de Bosc  
Fecha de Ingreso: marzo-2010
Mensajes: 43
Antigüedad: 14 años, 9 meses
Puntos: 3
Archivos Binarios

Hola. Ante todo: perdón por las aberraciones que pueda cometer contra el conocimiento y contra Python mismo.

Mi duda es si puedo hacer lo mismo con un .exe que con cualquier otro archivo que abra en modo 'rb'. Me esplico:

- Abrir foto en modo binario = Open ( foto.jpg, 'rb')
- Almaceno sus datos >>> datos = abrir foto....read()
- Creo un archivo nuevo de la nada (vacio) >> nuevo = 'nueva foto.jpg)
- Lo abro en modo escritura: abrir = open (nuevo, 'w')
- Inserto los datos de la foto original >>> open.write(datos)

Y resultado = un nuevo archivo que es una copia de la foto original.

Pero cuando hago esto con un .exe , el archivo que se crea no se puede ejecutar.... ¿por qué? ¿cómo podria hacer algo así? en VB creo que es bastante facil ??¿¿

Estoy probando con el modulo struct, pack-unpack .... va por ahi la solución ???
Espero que sea mas facil que esto porque este modulo lo veo muy difil de aprender....: chars, tipos de datos, alineacion.... buff

Aver si alguien me puede orientar...
  #2 (permalink)  
Antiguo 07/05/2010, 09:59
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Archivos Binarios

Ya probaste escribiendo en binario?
abrir = open(nuevo, 'wb')
  #3 (permalink)  
Antiguo 07/05/2010, 10:59
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Archivos Binarios

Código Python:
Ver original
  1. >>> f = open("miprograma.exe", "rb")
  2. >>> data = f.read()
  3. >>> f.close()
  4. >>> f = open("copia_de_miprograma.exe", "wb")
  5. >>> f.write(data)
  6. >>> f.close()
Básicamente así se hace.
  #4 (permalink)  
Antiguo 07/05/2010, 12:35
Avatar de Bosc  
Fecha de Ingreso: marzo-2010
Mensajes: 43
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Archivos Binarios

OK Razpeitia, fallaba en abrir en modo escritura 'w' en lugar de 'wb' .

Que facil ! Muchas gracias .

Hey si no te importa me puedes esplicar para que se utiliza el modulo struct ?

Solo por encima , para que tenga una idea .
  #5 (permalink)  
Antiguo 07/05/2010, 13:37
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Archivos Binarios

Lo siento pero no he tenido la oportunidad de leerme y practicar con el modulo struct, pero siempre puedes checar la documentación.
  #6 (permalink)  
Antiguo 08/05/2010, 08:51
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 8 meses
Puntos: 228
Respuesta: Archivos Binarios

Cual es la diferencia de leer en modo binario o en modo normal?? Cambia en los bits de lectura, o en que?
  #7 (permalink)  
Antiguo 08/05/2010, 17:01
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Archivos Binarios

Cita:
Iniciado por Wikipedia
The "b" stands for binary. The C standard provides for two kinds of files—text files and binary files—although operating systems are not required to distinguish between the two

Etiquetas: binario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:28.