hex()
Функция питона, ставит ведущие символы 0x
перед номером. Есть ли способ сказать, что НЕ ставить их? Так 0xfa230
и будет fa230
.
Код
import fileinput
f = open('hexa', 'w')
for line in fileinput.input(['pattern0.txt']):
f.write(hex(int(line)))
f.write('\n')
0x
.Ответы:
>>> format(3735928559, 'x') 'deadbeef'
источник
deadbeef
пример. Иformat()
это лучший способ сделать это.Используйте этот код:
'{:x}'.format(int(line))
он также позволяет вам указать количество цифр:
'{:06x}'.format(123) # '00007b'
Для Python 2.6 используйте
'{0:x}'.format(int(line))
или
'{0:06x}'.format(int(line))
источник
format()
функцию проще, вы не используете никаких шаблонов, а только форматирование. Если весь ваш шаблон содержит это{:..}
для одного значения, перейтиformat(value, '..')
вместо этого.f.write('{:x}'.format(hex(int(line))))
, там написаноValueError: zero length field name in format
format
нужен int, а не строка:f.write('{:x}'.format(int(line)))
Вы можете просто написать
hex(x)[2:]
чтобы удалить первые два символа.
источник
>>> hex(3735928559)[2:]
'deadbeefL'
x
будет отрицательным.Python 3.6+:
>>> i = 240 >>> f'{i:02x}' 'f0'
источник
Форматирование строк в старом стиле:
In [3]: "%02x" % 127 Out[3]: '7f'
Новый стиль
In [7]: '{:x}'.format(127) Out[7]: '7f'
Использование заглавных букв в качестве символов формата дает прописные шестнадцатеричные числа
In [8]: '{:X}'.format(127) Out[8]: '7F'
Документы здесь.
источник