在Python中解码未知格式的字节字符串

时间:2018-04-11 02:33:45

标签: python format byte decode

我正在尝试将字节字符串解码为普通字符串,然后解析其内容。

我的binary_string.decode()函数格式不同,但字符串永远不会完全解码。

这是一个例子

test = b'\x14\x00\x00\x00\x146/21/2015 2:06:41 AM\x08StepA;Used=2819379|Unused=1889|Invalid=56397\nAuto\x052.6.2\x149/3/2015 10:19:35 PM\x04Scan\x84\x01sherID=N371|ScanID=N371|SoftwareVersion=3.3.28\x16Control Software\x063.3.28\x149/3/2015 10:19:35 PM\x08Reg\x19Extract=Standard\x16Control Software\x063.2.28\x149/3/2016 10:19:35 PM\x07Extract=Standard\x16Control Software\x063.2.28\x146/21/2015 2:07:45 AM\x08StepB;Used=2903508|Unused=1874|Invalid=34099'

#test.decode('cp437') # this works too
print(test.decode("utf-8", "ignore"))

返回:

6/21/2015 2:06:41 AStepA;Used=2819379|Unused=1889|Invalid=56397
AutoDec2.6.29/3/2015 10:19:35 PMScansherID=N371|ScanID=N371|SoftwareVersion=3.3.28Control Software3.3.289/3/2015 10:19:35 PRegExtract=StandardControl Software3.2.289/3/2016 10:19:35 PMExtract=StandardControl Software3.2.286/21/2015 2:07:45 AStepB;Used=2903508|Unused=1874|Invalid=34099

哪个好,我可以编写一个解析器来重新格式化文本,但我觉得我在这里做错了,不要正确解码字节串。

我会期待这样的事情:

6/21/2015 2:06:41 AM  StepA Used=2819379|Unused=1889|Invalid=56397 AutoDec 2.6.2
9/3/2015 10:19:35 PM  Scan sherID=N371|ScanID=N371|SoftwareVersion=3.3.28 Control Software 3.3.28
9/3/2015 10:19:35 PM  Reg  Extract=Standard Control Software 3.2.28
9/3/2016 10:19:35 PM  Extract=Standard  Control Software 3.2.28
6/21/2015 2:07:45 AM  StepB Used=2903508|Unused=1874|Invalid=34099

感谢您的帮助!

0 个答案:

没有答案