【发布时间】:2012-11-02 14:05:57
【问题描述】:
我有一个变量conts,其中包含一个二进制文件的内容(使用rb 作为模式读取它)。现在,当我尝试通过切片获取字符串片段时,我希望看到变量的正确长度(当然还有内容),但我没有。
这是我可以重现的代码,但我不知道这里发生了什么:
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'>
这里发生了什么?我以为切片会为每个切片创建一个新字符串?
Python 版本:2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)]
注意:切片之间的四字节间隙是有意的。问题在于第二个切片返回一个长度为零的字符串,即使有足够的数据。我没有发现任何文件(切片时)需要相邻。
编辑:在意识到我的错误后:我打算从长度超过 17 个字节的字符串中获取字节 0 到 6 和字节 10 到 17。
【问题讨论】:
标签: python windows python-2.7 slice