Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 5, 2010 21:54:34

DarkVortex
От:
Зарегистрирован: 2010-04-18
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразование байт кода

Здравствуйте. Появилась такая задача считать содержимое файла побитно в массив, делаю все просто:

>>> 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 системе счисления). Как это осуществить? Если поняли меня помогите)



Отредактировано (Окт. 5, 2010 21:57:00)

Офлайн

#2 Окт. 5, 2010 23:56:05

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Преобразование байт кода

Не понял. 245 в 16'ричной не может быть, максимальное значение байта, это 255 (0xff).

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

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

..bw



Отредактировано (Окт. 5, 2010 23:57:50)

Офлайн

#3 Окт. 6, 2010 00:07:05

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Преобразование байт кода

open(filename, ‘rb’)



Офлайн

#4 Окт. 6, 2010 07:44:54

DarkVortex
От:
Зарегистрирован: 2010-04-18
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразование байт кода

bw
Не понял. 245 в 16'ричной не может быть, максимальное значение байта, это 255 (0xff).

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

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

..bw
Кроме ord(f) все чушь)
но спасибо огромное, работает



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version