在二进制文件中查找字节对位置以供Python编辑

0 投票
2 回答
3163 浏览
提问于 2025-04-17 17:52

我有一些以二进制格式存储的jpeg图片。现在我需要编辑这些二进制数据,删除所有在 0xff 0xd8 之前的字节对,因为这是jpeg文件的开头部分。原因是,当我尝试在图像程序中查看这些文件时,只要不删除 0xff 0xd8 之前的所有字节,它们就无法打开。

这是我目前尝试过的:

data= open ('C:/Users/Umberto/Desktop/_BR_Browse.001_2065642654_1.BINARY', 'rb+')
edit= str (data.read () )
data.close ()
edit.find ('/xff/xd8')

但是无论我在“find”方法中放什么参数,我总是得到'-1'作为索引。这段代码有什么问题呢?一旦我知道了 0xff 0xd8 的位置,我就可以简单地删除它之前的部分。

2 个回答

2

你的转义字符写反了。试试 edit.find('\xff\xd8')

0

这行代码有问题:

edit.find ('/xff/xd8')

请用'\'代替'/'

edit.find ('\xff\xd8')

更多信息请查看这里: Python: 搜索/读取二进制数据

撰写回答