我有一个conts
包含二进制文件内容的变量(以rb
as 模式读取)。现在,当我尝试通过切片获取字符串片段时,我希望看到变量的正确长度(当然还有内容),但我没有。
这是我可以重现的代码,我不知道这里发生了什么:
hdr1, hdr2 = conts[0:6], conts[10:7]
print "----------------"
print len(conts)
print len(hdr1)
print len(hdr2)
print len(conts)
print "----------------"
print type(hdr1)
print type(hdr2)
print type(conts)
然而,我得到的输出是:
----------------
32174321
6
0
32174321
----------------
<type 'str'>
<type 'str'>
<type 'str'>
这里发生了什么?我认为切片会为每个切片创建一个新字符串?
蟒蛇版本:2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)]
注意:切片之间的四字节间隙是故意的。问题在于第二个切片返回一个长度为零的字符串,即使有足够的数据。我没有发现任何文件(切片时)需要相邻。
编辑:在意识到我的错误之后:我打算从一个长度超过 17 个字节的字符串中获取字节 0 到 6 和字节 10 到 17。