在Python中操作二进制数据

Dom*_*mra 16 python binary hex python-2.7

我打开一个像这样的二进制文件:

file = open("test/test.x", 'rb')
Run Code Online (Sandbox Code Playgroud)

并阅读列表中的行.每行看起来有点像:

'\xbe\x00\xc8d\xf8d\x08\xe4.\x07~\x03\x9e\x07\xbe\x03\xde\x07\xfe\n'
Run Code Online (Sandbox Code Playgroud)

我很难操纵这些数据.如果我尝试打印每一行,python冻结,并发出哔哔声(我认为那里有一个二进制哔声代码).如何安全地使用这些数据?如何将每个十六进制数转换为十进制?

ʇsә*_*ɹoɈ 24

要打印它,你可以这样做:

print repr(data)
Run Code Online (Sandbox Code Playgroud)

对于整个十六进制:

print data.encode('hex')
Run Code Online (Sandbox Code Playgroud)

对于每个字节的十进制值:

print ' '.join([str(ord(a)) for a in data])
Run Code Online (Sandbox Code Playgroud)

要从数据中解包二进制整数等,就像它们最初来自C风格的结构一样,请查看struct模块.