在python中读取二进制文件时的偏移量

时间:2015-02-20 10:58:48

标签: python binaryfiles

我正在尝试解析OSM PBF file。格式标准声明,并在Sublime Text中读取它,这是确认的,前四个字节是:

0000 000d

为什么然后,如果我运行一个非常简单的Python程序:

PBFfile = open(r'MyFilePath.osm.pbf')
PBFfile.read(4)[3].encode('hex')

是否返回0a(序列中的下一个字节)而不是预期的0d?有明显的解释吗?

我在Windows 7上,Python 2.7.5 32位。

1 个答案:

答案 0 :(得分:2)

您正在"文本模式"中打开文件,这会导致一些不需要的换行符处理(docs)。

要解决您的问题,请以二进制模式打开它,例如:

PBFfile = open(r'MyFilePath.osm.pbf', 'rb')