这是我第一次使用二进制文件直接与我一起工作。在Python中解释二进制数据
我使用Python 2.7
我试图用一个大的二进制文件,指定图像的每个像素的经/纬度。
使用此代码:open('input', 'rb').read(50)
文件看起来是这样的: \x80\x0c\x00\x00\x00\x06\x00\x00.\x18\xca\xe4.\x18\xcc\xe4.\x18\xcf\xe4.\x18\xd1\xe4.\x18\xd3\xe4.\x18\xd5\xe4.\x18\xd7\xe4.\x18\xd9\xe4/\x18\xdb\xe4/\x18\xdd\xe4/\x18
...
在读我的文件给出了解码以下信息,但我不确定如何应用它们:
这些文件采用LSBF字节顺序。文件以2个4字节整数值开始,给出文件的像素和行(x,y)大小。在文件成功之后,成对的元素是经度和纬度的2字节整数值乘以100并截断(例如75.324E是“-7532”)。
感谢您的任何帮助。
请注意,最终这样做的原因是根据lat/long绘制/更改图像,而不是像素#,以防有人想知道。
您可以将其转换为NumPy数组。那会很方便吗?顺便说一句,你使用Python 2或Python 3? –
python中的两个主要工具是['struct'](https://docs.python.org/2/library/struct.html)模块和['numpy.fromfile'](http:// docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.fromfile.html)。鉴于大量的数据,numpy可能是最简单和最快的。 [Here's](http://stackoverflow.com/questions/14245094/how-to-read-part-of-binary-file-with-numpy)一个例子。如果您遇到问题,我建议您尝试一下并发布具体问题。 – tom10
很抱歉编辑说使用Python 2.7。 – MattS