Форум сайта python.su
0
Здравствуйте. Существуют способы решить эту проблему без написания новых функций?
P. S. Причина проблемы - необходимо записать шестнадцатеричное число в файл. В файл пишутся только строковые переменные.
Отредактировано Antimonter (Окт. 22, 2012 22:22:01)
Офлайн
open(path, “w”).write(hex(value))
Офлайн
14
AntimonterТак сделай их строковыми.
В файл пишутся только строковые переменные.
f.write(str(var)) #python 2 print >>f, var
Офлайн
20
Не понятно что требуется. В Python не существует “шестнадцатиричных” чисел. Кроме строк (str, unicode), есть целочисленные (int, long) и вещественные (float), ну такая хрень в отдельных моделях как numbers, decimal и fractions.
Можно целое преобразовать в строку, так что бы оно выглядело как hex, bin, oct и т.д., но это будет строка, а не число. Можно число преобразовать в байт (или в несколько), см. про `chr` и `struct`.
А что именно вам требуется и что вы имеете ввиду под “шестнадциричными числами” я, увы, не догоняю.
..bw
Офлайн
Все верно, но не углубляясь в детали, я так понимаю что человек хочет записать в файл скажем 0xff как ‘0xff’, а не ‘255’
>>> hex(0xff)
'0xff'
>>> str(0xff)
'255'
>>>
Офлайн
568
dimy44
Все верно, но не углубляясь в детали, я так понимаю что человек хочет записать в файл скажем 0xff как ‘0xff’, а не ‘255’
# -*- coding: utf-8 -*- x=hex(0xff) print str(x) >>> 0xff
Офлайн
Это и так строка
>>> type(hex(0xff))
<type 'str'>
>>>
Офлайн