在Python中读取字符串中的二进制数据部分

时间:2011-04-14 11:34:42

标签: python string file binary

当你在python中的文件对象上使用.read(n)方法时,你会得到n个字节。 如果我首先在字符串中加载文件,有什么功能可以让我做同样的事情吗?

因为我猜它不像文件字符串[0:5]那么容易,因为编码类型不同。 (我真的不想注意那个,读取的文件可以是任何格式的文本文件或二进制文件)

1 个答案:

答案 0 :(得分:3)

如果string是类型str(不是Unicode字符串,请键入unicode),那么它是一个字节字符串,切片将按预期工作:

prefixed_bits = "extract this double:\xc2\x8eET\xfb!\t@"
pos = prefixed_bits.index(":") + 1
print "That looks like the value %f" % struct.unpack("d", prefixed_bits[pos:pos+8])

这将打印3.141593,其二进制表示形式以字符串文字编码。