Форум сайта python.su
Здравствуйте. Появилась такая задача считать содержимое файла побитно в массив, делаю все просто:
>>> 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'}
Отредактировано (Окт. 5, 2010 21:57:00)
Офлайн
Не понял. 245 в 16'ричной не может быть, максимальное значение байта, это 255 (0xff).
>>> f
'\xf5'
>>> ord(f)
245
p.s. Конкретно в этом примере: range, len полностью лишние – for c in f: вполне будет работать. Почему есть необходимость в m мне совершенно не понятно, хотя понятно, что лучше бы ему быть списком, а не словарём.
..bw
Отредактировано (Окт. 5, 2010 23:57:50)
Офлайн
open(filename, ‘rb’)
Офлайн
bwКроме ord(f) все чушь)
Не понял. 245 в 16'ричной не может быть, максимальное значение байта, это 255 (0xff).
>>> f
'\xf5'
>>> ord(f)
245
p.s. Конкретно в этом примере: range, len полностью лишние – for c in f: вполне будет работать. Почему есть необходимость в m мне совершенно не понятно, хотя понятно, что лучше бы ему быть списком, а не словарём.
..bw
Офлайн