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')
Answers:
使用此代码:
'{: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'
0x。