您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python中搜索/读取二进制数据

在Python中搜索/读取二进制数据

您实际上可以将文件加载到字符串中,然后0xffc0使用str.find()方法在该字符串中搜索字节序列。它适用于任何字节序列。

执行此操作的代码取决于几件事。如果您以二进制模式打开文件并且使用的是Python 3(这两种都是该方案的最佳实践),则需要搜索一个字节字符串(而不是字符串),这意味着您必须在字符串前面加上b

with open(filename, 'rb') as f:
    s = f.read()
s.find(b'\xff\xc0')

如果您在Python 3中以文本模式打开文件,则必须搜索一个字符串:

with open(filename, 'r') as f:
    s = f.read()
s.find('\xff\xc0')

尽管没有特别的理由这样做。与以前的方法相比,它没有任何优势,并且如果您使用的平台对二进制文件和文本文件的处理方式不同(例如Windows),则很可能会引起问题。

Python 2不会区分字节字符串和字符串,因此,如果您使用的是该版本,则是否包含bin都没有关系b'\xff\xc0'。而且,如果您的平台将二进制文件和文本文件(例如Mac或Linux)相同地对待,则使用'r'还是将其'rb'用作文件模式都没有关系。但是我仍然建议您使用上面第一个代码示例之类的东西,以保持向前兼容性- 万一您确实切换到Python 3,就不那么容易解决了。

python 2022/1/1 18:28:28 有190人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶