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