PDA

Visualizza la versione completa : [python]Aprire file in esadecimale


andrew low
30-12-2008, 14:47
Come posso aprire in python un file in modalità esadecimale (se è corretto chiamarlo così)? Cioè che mi dia un output come quello di un editor esadecimale.

pallinopinco
30-12-2008, 16:12
Questo (http://mail.python.org/pipermail/python-list/2000-March/027284.html) è il sorgente di un semplice hex editor realizzato in Python.



...
data = self.data.read(length)
for i in range(0, min(length, len(data)), 16):
print '%08X:' % (addr+i),
for j in range(0, 16):
if i+j >= len(data):
break
print '%02X' % ord(data[i+j]),
print ''

andrew low
30-12-2008, 21:45
Mi dispiace, ma non mi funziona l'editor hex. Mi solleva un errore, un IndexError.

Metflar
30-12-2008, 22:27
file=open("file.txt")
print file.read().encode("hex")
file.close()

:ciauz:

andrew low
30-12-2008, 22:46
il tuo funziona, ma mi stampa a video solo la 1' parte, come faccio per stamparla tutta?

pallinopinco
30-12-2008, 22:50
Mi dispiace, ma non mi funziona l'editor hex. Mi solleva un errore, un IndexError.


Ho testato il codice e funziona. Descrivi le operazioni che hanno portato all'eccezione.

andrew low
30-12-2008, 22:54
Cioè, non genera errore, visto ceh c'è un except, ma quando apro il programma, mi printa Usage: My_path\prova.py filename

Ho provato a togliere l'except e mi solleva questo errore:

Traceback (most recent call last):
File "My_path\prova.py", line 228, in ?
interp = Interpreter(sys.argv[1])
IndexError: list index out of range

Metflar
30-12-2008, 22:55
Originariamente inviato da andrew low
il tuo funziona, ma mi stampa a video solo la 1' parte, come faccio per stamparla tutta?
errore di distrazione asd


for string in file.readlines():
print string.encode("hex")

andrew low
30-12-2008, 23:00
Non so come mai ma printa ancora la stessa parte, solo l'nizio.

Metflar
30-12-2008, 23:02
Originariamente inviato da andrew low
Non so come mai ma printa ancora la stessa parte, solo l'nizio.
a me funziona :)

Loading