首页 > 解决方案 > 字节字符串未正确拆分

问题描述

我有一个字节字符串:

a = b'\x11\xee\x8f\xed\xb3]\x0f\x843^\xcaU\x9c\r+_TfK\x86\xd5\x94\xcc\xc5\xec[%U\xe0Z\xd2p\xaa\x83\xdc\x90?!l.\xc4K\xae\xd6)\x99\xf0\xb7\\\xb6\nb\x128$*\x0c\xbd&\x87\r\x9a\x8fx\xfc&\xf6r\xc11^O\x19\x0e8\xec\xcb\xfb07\x88\x968\xc6wm\x97\xb3\xe4\xff2\\N\xcf\x97\xd2\x95s?\xb1\xfd=\x9e\x99\ttu#\xbb\xdf\xed e\xcbO,\xf5\xa8\xe4\xcfIC\xda\x98\xff\xa5\xb6\x07~\xe5\xcb\xeb\xda\xc4\x80"\x89\xff\x05\xac0q\x97Jm\xabM\xc1Id\xdcN\xea\xe6<\x16\xb2\x8aQ5\xc0W\x04\x19\xfa\t\xb5::\x8bpI\'\x93\x8at\xae\\\xa0\xd2\x1dJ\xc0\xe8\x8eG\x17\xb6i\xf8\xe4\xf3\xc1\xb69\xe2t\xbb\xf6\x9c\xb2Ar>\xdb\xc7\xdb\x85e\x04&\x04\x05\xa4\x90\x87\xda<\x00#\xc1\xfa\x8eG.\x1aBS2\xee\xfb\xae\xf3=\xbeM\x9d\xbd6\xf5H\xa6*7\xcfSK\xbb\xf3M\xde:\xa0U\xd3%\x93hRl\xe3S\x7f\xd8;\xd6;\x013\xad2go\xc3\'\x89\x18\\\xc4NR\x848\x12\x1c\xf1d\xc8\x14e@\x82I\xd7\xdd6\n\rAaY\xb2\xbb\xd5\xd4aw\xc3V\x089\x8b!D\xaa+\xfaRvB5u\x8b\x83\xb1\x8f\xb0\x9f%\xab\xc4\xea\xde\x05\xa01\x05\xc2]F\'\xfb*\x1c\xfa\x05E\xec\xa60\x10\xbc\xab\x9b\x821\xe9\x8ef\x19\xda\x01\x81k\xf8"e&\x88\x13\x032\xcb\x8c[\x14\xbb\xba5\x81\xaa{\xa6W@\xc0\x8e\xc6\x80\x8ek\x07hy\xb2\x99w\xbe3\xc6\x95f\x9a\xe8[\xf0\xf0U\x16\x8d;?zm\xb3b\x8d\xc0\x93\xb8\xc6\x99\xcdA"\xa2\xd9#\x1f\xb1\xc3i\xbe5y\\\xe0m@=\xcb\xc8|\xf1\x1fp7\xf6uuE\xfd\r\xa28P\xcc\x1b\x9e]\x08\xd1k\x84\x0b2\xe1\xf2)\x84p\x13\xbb\xe1\x86\xec?`m\x1dYk\xf2y\xe2=d\xff8?6\xf7\x19\x9c\x81\x06ps\xa2\xa1^\n!\x14JPs {\xc0\x9b\xa1\xb4\xed\xb2\xb71\xd4\xcbgu\x86\x86\r\x9e\x83Gj\xa3\xb1|\x02HI\xbenVDL\xdf\xad \xc7f'

我想把它分成 512 : 32 字节

这是我使用的代码,其中 b 是 512 个字节的集合,c 是 32 个字节的集合:

b = a[:32]
c = a[512:]

32 个字节正确分开,但 512 个字节没有分开,而不是将前 512 个字节与后 32 个字节分开,而是将前 32 个字节和后 32 个字节分开,中间部分丢失:

c = b'\xb4\xed\xb2\xb71\xd4\xcbgu\x86\x86\r\x9e\x83Gj\xa3\xb1|\x02HI\xbenVDL\xdf\xad \xc7f'
b = b'\x11\xee\x8f\xed\xb3]\x0f\x843^\xcaU\x9c\r+_TfK\x86\xd5\x94\xcc\xc5\xec[%U\xe0Z\xd2p'

标签: pythonpython-3.x

解决方案


如果没有描述你想要什么,你想要什么的描述就会令人困惑。

在列表切片([number:number] 事物)中,第一个数字是您想要包含的第一个索引(默认为 0)。第二个数字是切片是索引+1(默认为列表末尾)。
你说的是

b = a[:32]

"b" 是 "a" 从 0 到 32 的前 32 个元素,可以认为 b = a[from 0 : to 32]

c = a[512:]

"c" 是 "a" 的元素,从 512 开始到结尾,或者你可以把它想象成 c=a[from 512:to end]


推荐阅读