栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

您实际上可以将文件加载到字符串中,然后

0xffc0
使用
str.find()
方法在该字符串中搜索字节序列。它适用于任何字节序列。

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

b

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

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

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

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

Python
2不会区分字节字符串和字符串,因此,如果您使用的是该版本,则是否包含

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/429245.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号