У меня есть файл изображения .raw, и я хотел бы использовать python3 для чтения всех данных из файла и печати шестнадцатеричного дампа этого изображения.
Если возможно, я бы хотел, чтобы он запускался в окне терминала.
Это код, который я нашел и адаптировал до сих пор:
import sys
src = sys.argv[1]
def hexdump( src, length=16, sep='.' ):
result = [];
# Python3 support
try:
xrange(0,1);
except NameError:
xrange = range;
for i in xrange(0, len(src), length):
subSrc = src[i:i+length];
hexa = '';
isMiddle = False;
for h in xrange(0,len(subSrc)):
if h == length/2:
hexa += ' ';
h = subSrc[h];
if not isinstance(h, int):
h = ord(h);
h = hex(h).replace('0x','');
if len(h) == 1:
h = '0'+h;
hexa += h+' ';
hexa = hexa.strip(' ');
text = '';
for c in subSrc:
if not isinstance(c, int):
c = ord(c);
if 0x20 <= c < 0x7F:
text += chr(c);
else:
text += sep;
result.append(('%08X: %-'+str(length*(2+1)+1)+'s |%s|') % (i, hexa, text));
return '\n'.join(result);
if __name__ == "__main__":
print(hexdump(src, length=16, sep='.'))
Я использовал команду в терминале:
python3 nameoffile.py nameofrawfile.raw
и это просто дает мне шестнадцатеричные значения имени необработанного файла. Я бы хотел, чтобы он читал необработанный файл, а затем выдавал все данные из него в шестнадцатеричном формате.
Спасибо.
РЕДАКТИРОВАТЬ: я хотел бы использовать python, поскольку после того, как файл представлен в шестнадцатеричных значениях, я хотел бы выполнить дальнейшую обработку с помощью python.