我有一个OSM PBF file我正在分析。格式标准声明,并以升华文本的形式读取,这是确定的,前四个字节是:0000 000d
为什么,如果我运行一个非常简单的Python程序:
PBFfile = open(r'MyFilePath.osm.pbf')
PBFfile.read(4)[3].encode('hex')
它是否返回
0a
(序列中的下一个字节)而不是预期的0d
?有明显的解释吗?我在Windows7上,Python2.7.5 32位。
最佳答案
您以“文本模式”打开文件,这会导致一些不需要的换行处理(docs)。
要解决问题,请以二进制模式打开它,例如:
PBFfile = open(r'MyFilePath.osm.pbf', 'rb')
关于python - 在python中读取二进制文件时的偏移,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28627349/