Найти - Пользователи
Полная версия: Преобразование байт кода
Начало » Python для новичков » Преобразование байт кода
1
DarkVortex
Здравствуйте. Появилась такая задача считать содержимое файла побитно в массив, делаю все просто:
>>> f = open('e:\\test.dat').read()
>>> m = {}
>>> for i in range(len(f)):
... m[i] = f[i].encode('hex')
>>> m
{0: '01', 1: '02', 2: '00', 3: '01', 4: '03', 5: '02', 6: '02', 7: '01', 8: '02', 9: '00', 10: '00', 11: '01', 12: '03', 13: '03', 14: '02', 15: 'f5'}
проблема в том что мне нужны только численные значения, то есть вместо f5 должно быть 245 (в 16 системе счисления). Как это осуществить? Если поняли меня помогите)
bw
Не понял. 245 в 16'ричной не может быть, максимальное значение байта, это 255 (0xff).

>>> f
'\xf5'
>>> ord(f)
245

p.s. Конкретно в этом примере: range, len полностью лишние – for c in f: вполне будет работать. Почему есть необходимость в m мне совершенно не понятно, хотя понятно, что лучше бы ему быть списком, а не словарём.

..bw
Андрей Светлов
open(filename, ‘rb’)
DarkVortex
bw
Не понял. 245 в 16'ричной не может быть, максимальное значение байта, это 255 (0xff).

>>> f
'\xf5'
>>> ord(f)
245

p.s. Конкретно в этом примере: range, len полностью лишние – for c in f: вполне будет работать. Почему есть необходимость в m мне совершенно не понятно, хотя понятно, что лучше бы ему быть списком, а не словарём.

..bw
Кроме ord(f) все чушь)
но спасибо огромное, работает
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB