从二进制fi解码python中的字符串列表

2024-06-10 11:52:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要从二进制文件中读取字符串列表并创建python列表。在

我正在使用下面的命令从二进制文件中提取数据:

tmp = f.read(100) 
abc, = struct.unpack('100c',tmp) 

我在变量'abc'中看到的数据与下面显示的完全一样,但是我需要将下面的数据作为字符串放入python列表中。在

我需要的数据作为列表:“UsrVal”“VdetHC”“vcuhc”重力轴

^{pr2}$

Tags: 文件数据字符串命令列表read二进制tmp
2条回答

如果你想用一种快速而混乱的方式,假设你的绳子

b'UsrVal\x00VdetHC\x00VcupHC\x00VdirHC\x00HdirHC\x00UpFlwHC\x00UxHC\x00UyHC\x00UzHC\x00VresHC\x00UxRP\x00UyRP\x00UzRP\x00VresRP\x00Gravity_Axis'

实际上被解释为

" b'UsrVal\x00VdetHC\x00VcupHC\x00VdirHC\x00HdirHC\x00UpFlwHC\x00UxHC\x00UyHC\x00UzHC\x00VresHC\x00UxRP\x00UyRP\x00UzRP\x00VresRP\x00Gravity_Axis' "

然后下面几行代码的结果是“b”拥有所需的数组。在

a = {YourStringHere}
b = a[2:-1].split("\x00")

下面是我建议你用一条线来做的方法。在

您需要对二进制字符串进行解码,然后可以基于"\x00"进行拆分,这将返回您要查找的列表。在

例如

my_binary_out = b'UsrVal\x00VdetHC\x00VcupHC\x00VdirHC\x00HdirHC\x00UpFlwHC\x00UxHC\x00UyHC\x00UzHC\x00VresHC\x00UxRP\x00UyRP\x00UzRP\x00VresRP\x00Gravity_Axis'
decoded_list = my_binary_out.decode("latin1", 'ignore').split('\x00')
#or 
decoded_list = my_binary_out.decode("cp1252", 'ignore').split('\x00')

输出如下所示:

^{pr2}$

希望这有帮助

相关问题 更多 >