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?
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
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í?
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
Hola!
La parte que no te entiendo es la resaltada:
Cita de: francoyo1998 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?
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!
Cita de: francoyo1998 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
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
Esto funciona en py2.7:
archivo = open("C:/texto.txt", 'r')
texto = archivo.read()
' '.join(format(x, 'b') for x in bytearray(texto))
un saludo
y para leerlo y guardarlo como texto?
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
import binascii
cadena="soy una cadena en un fichero binario"
codigo=binascii.hexlify(cadena)
print codigo
print binascii.unhexlify(codigo)