python 中读取二进制文件时的偏移量
Offset when reading binary file in python
我有一个 OSM PBF file 正在尝试解析。格式标准规定,并在 Sublime Text 中阅读,这已得到确认,前四个字节是:
0000 000d
那么,如果我 运行 一个非常简单的 Python 程序:
PBFfile = open(r'MyFilePath.osm.pbf')
PBFfile.read(4)[3].encode('hex')
return 0a
(序列中的下一个字节)不是预期的 0d
吗?有没有明显的解释?
我在 Windows 7,Python 2.7.5 32 位。
您正在 "text mode" 中打开文件,这会导致一些不需要的换行符处理 (docs)。
要解决您的问题,请以二进制模式打开它,例如:
PBFfile = open(r'MyFilePath.osm.pbf', 'rb')
我有一个 OSM PBF file 正在尝试解析。格式标准规定,并在 Sublime Text 中阅读,这已得到确认,前四个字节是:
0000 000d
那么,如果我 运行 一个非常简单的 Python 程序:
PBFfile = open(r'MyFilePath.osm.pbf')
PBFfile.read(4)[3].encode('hex')
return 0a
(序列中的下一个字节)不是预期的 0d
吗?有没有明显的解释?
我在 Windows 7,Python 2.7.5 32 位。
您正在 "text mode" 中打开文件,这会导致一些不需要的换行符处理 (docs)。
要解决您的问题,请以二进制模式打开它,例如:
PBFfile = open(r'MyFilePath.osm.pbf', 'rb')