【发布时间】:2014-10-16 13:44:17
【问题描述】:
我有一个从数据库加载的 base64 blob。我已经对其进行了解码,现在需要在其中搜索一个字符串。 Blob 可以并且确实包含二进制(不可打印)字节。
到目前为止我的代码很简单
for row in cursor:
b = base64.standard_b64decode(row[2])
所以我需要找到字符串'xyx'在b中的位置
【问题讨论】:
我有一个从数据库加载的 base64 blob。我已经对其进行了解码,现在需要在其中搜索一个字符串。 Blob 可以并且确实包含二进制(不可打印)字节。
到目前为止我的代码很简单
for row in cursor:
b = base64.standard_b64decode(row[2])
所以我需要找到字符串'xyx'在b中的位置
【问题讨论】:
“二进制 blob”在 python 中只是一个字符串,所以你可以使用str.index:
i= b.index('xyx')
i 成为'xyx' 在b 中位置的从0 开始的索引的值。请注意,这将计算字节数,而不是字符数。
你也可以使用str.find,如果你不想在'xyx' not in b的情况下引发异常
【讨论】:
decode 某个地方的字符串吗? index 和 find 不应该尝试解码字符。请尝试以下操作:("".join(map(chr,range(256)))).index('\xff')