从Python中的文件中读取C结构
我对C语言很少有经验,所以如果我说的话没有意义,我会提前道歉。从Python中的文件中读取C结构
我正在研究一个项目,其中我的整个代码库都是用python 2.7编写的。我在一个地步,我必须由其他人创建的数据是谁在使用C.他给了我由一个头结构,如每个数据文件读取...
struct Header {
int32_t x1;
int32_t x2;
.
.
.
};
这随后是一组相同格式的结构数组,每个数组包含模拟中单个元素的数据。
有没有办法用python读取这些数据?这似乎是我需要使用python的结构模块,但我已经通过文档阅读,或者我找不到我需要或不知道如何使用它。
谢谢!
看看要么struct
模块pack
& unpack
功能或模块 - 要么将你理清哪个更好取决于几个因素,numpy
还包括函数来读取“外星人”的数据,可以帮助..
我之前使用过结构模块的解包函数来自二进制文件的数据,我刚刚尝试以类似的方式使用它来读取这些数据。例如,要读入我最初发布的头文件中的第一部分数据,我只需使用解包将其读入为4字节的整数。这给了我无意义的价值,但是,这使我相信我正在阅读的数据不是我想要的数据。我假设有一些格式化或字节填充的C结构保存的方式,我没有考虑到。如果是这样,我可以在哪里找到这件事?谢谢! – user2579664
是来自windows还是unix机器的数据,你运行的是否相同 - 如果endian不同,则需要在解包字符串中设置该值,同样也需要填充。 –
数据是在我用来解压它的同一个unix群集上创建的。 – user2579664
你尝试了什么,什么不起作用?你是对的,你想使用'struct'模块。 –
另一种方法是'ctypes'模块,但这更难理解(但更灵活) –
您还需要考虑源代码和目标代码的差异...... – dawg