【发布时间】:2015-01-16 19:19:01
【问题描述】:
我正在处理一个字符分隔的十六进制文件,其中每个字段都有一个特定的起始码。我已将文件打开为“rb”,但我想知道,在使用 .find 获取起始码的索引后,如何从该位置读取一定数量的字节? 这就是我加载文件的方式以及我正在尝试做的事情
with open(someFile, 'rb') as fileData:
startIndex = fileData.find('(G')
data = fileData[startIndex:7]
其中 7 是我想从 find 函数返回的索引中读取的字节数。我正在使用 python 2.7.3
【问题讨论】:
-
你能举个例子吗?
-
你看到了什么:
print(repr(open('your filename', 'rb').read(10)))? -
将读取文件的前 10 个字节
-
是的,它会的。你看到了什么? “十六进制文件”这个短语是可疑的——它可能表明您对文件是什么的根本误解(从应用程序的角度来看)。
-
是否要在文件中查找字节序列
bytearray([40, 71])(两个字节)?或者您想查找 textu'\u0028\u0047'(两个字符(两个 Unicode 代码点))?您应该知道在后一种情况下用于将文本存储在文件中的字符编码