Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Noxware en 22 Junio 2014, 00:39 am



Título: [AYUDA][PYTHON] Como leo y escribo archivos en forma binaria
Publicado por: Noxware en 22 Junio 2014, 00:39 am
Hola, necesito saber como leo X archivo de forma binaria, de tal forma que pueda guardar su codigo binario en un archivo de texto y viceversa.

al principio use "rb" y "wb" para leer y escribir de forma binaria pero me mostraba tanto letras como numeros y yo necesito solo numeros.

un amigo me dijo que hay un metodo que muestra el archivo con numeros decimales o algo asi, mi pregunta ¿es como lo hago?


Título: Re: [AYUDA][PYTHON] Como leo y escribo archivos en forma binaria
Publicado por: engel lex en 22 Junio 2014, 05:14 am
no se python pero esto es un problema común en los lenguajes :P

lo que pasa es que probablemente está en binario, pero lo estás representando como ascii, es decir, lo mismo que abrir un .exe o una imagen en notepad

es decir, no puedes esperar guardar bits en un archivo y abrirlo como texto, porque los editores de texto, leerán los bits a conveniencia de manera que coincidan con los bits representados por ascii... tendrás que buscar una forma de lee el archivo byte a byte y convertirlo en texto... ya sean ceros y unos, octal, hexadecimal, decimal... etc... pero debe ser convertido... no leído y pegado


Título: Re: [AYUDA][PYTHON] Como leo y escribo archivos en forma binaria
Publicado por: tincopasan en 22 Junio 2014, 06:15 am
te diré que primero aprendas sobre archivos, segundo sobre binario y texto, y tercero para ver "solo números" ¿qué tipo es eso? ¿sabés en que lo querés ver? lo es lo mismo notepad que un editor hexa por ejemplo, binario es solo 0 y 1 ¿con qué ves así?


Título: Re: [AYUDA][PYTHON] Como leo y escribo archivos en forma binaria
Publicado por: Noxware en 23 Junio 2014, 03:40 am
justamente "rb" y "wb" lo que hacen es leer y escribir de forma binaria, para que suceda eso de leerlo como texto ubiese tenido que usar "r" y "w" asi que ese no debe ser el problema :P


Título: Re: [AYUDA][PYTHON] Como leo y escribo archivos en forma binaria
Publicado por: MCKSys Argentina en 23 Junio 2014, 03:44 am
Hola!

La parte que no te entiendo es la resaltada:

Hola, necesito saber como leo X archivo de forma binaria, de tal forma que pueda guardar su codigo binario en un archivo de texto y viceversa.

al principio use "rb" y "wb" para leer y escribir de forma binaria pero me mostraba tanto letras como numeros y yo necesito solo numeros.

un amigo me dijo que hay un metodo que muestra el archivo con numeros decimales o algo asi, mi pregunta ¿es como lo hago?

Qué quieres decir con eso? Abriste el archivo con un editor hexa para ver bien qué es lo que contenía?

No entiendo bien qué es lo que quieres hacer...

Saludos!


Título: Re: [AYUDA][PYTHON] Como leo y escribo archivos en forma binaria
Publicado por: engel lex en 23 Junio 2014, 03:54 am
justamente "rb" y "wb" lo que hacen es leer y escribir de forma binaria, para que suceda eso de leerlo como texto ubiese tenido que usar "r" y "w" asi que ese no debe ser el problema :P

no necesariamente XD eso quisiera decir que lo va a guardar como el numero que representa binariamente esa cantidad XD un numero gigantesco que no te terminaría de servir... también significaría que si abres un archivo de texto de manera binaria y lo guardas como texto, lo destruiría... no, básicamente ese comando indica si lo va a interpretar de una vez como texto o si no lo va a intepretar


Título: Re: [AYUDA][PYTHON] Como leo y escribo archivos en forma binaria
Publicado por: fallout20xx en 24 Junio 2014, 09:33 am
Esto funciona en py2.7:
Código:
archivo = open("C:/texto.txt", 'r')
texto = archivo.read()
' '.join(format(x, 'b') for x in bytearray(texto))

un saludo


Título: Re: [AYUDA][PYTHON] Como leo y escribo archivos en forma binaria
Publicado por: Noxware en 24 Junio 2014, 18:24 pm
y para leerlo y guardarlo como texto?


Título: Re: [AYUDA][PYTHON] Como leo y escribo archivos en forma binaria
Publicado por: daryo en 24 Junio 2014, 19:40 pm
prueba pasar el archivo a hexadecimal con el modulo binascii que viene por defecto en python luego lo metes al archivo asi no tendras caracteres raros es algo asi

 no lo he probado asi que talves algo no este bien

Código
  1. import binascii
  2.  
  3. cadena="soy una cadena en un fichero binario"
  4. codigo=binascii.hexlify(cadena)
  5. print codigo
  6. print binascii.unhexlify(codigo)
  7.