我正在尝试解析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位。
答案 0 :(得分:2)
您正在"文本模式"中打开文件,这会导致一些不需要的换行符处理(docs)。
要解决您的问题,请以二进制模式打开它,例如:
PBFfile = open(r'MyFilePath.osm.pbf', 'rb')