如何在C程序生成的python中打开复数文件?

问题描述

我的代码

with open('car.FT','r',encoding="utf-8",errors='ignore') as h:
    for line in h:
        print(line)

文件“ car.FT”是具有复杂值存储的傅里叶变换的输出。它是通过C程序编写的,但我想用python打开此文件。 使用上面的这段代码无法读取输出。 该文件用C编写:

typedef struct complex {    /* Define a complex type */
    float r,i;          /* Real and imaginery parts */
    } COMPLEX;

/* buffer for input image being converted into complex type */
COMPLEX IN_BUF[ROWS][COLS];

///PROCESSING ON IN_BUF////

fwrite(IN_BUF,sizeof(COMPLEX),ROWS*COLS,fout);

以下是文件中实际的数据。我想读。

enter image description here

我想在python中读取以上文件数据。

解决方法

根据C代码判断,这些数字被写为二进制浮点数,所显示的是文件内容的十六进制输出。在这种情况下,当您尝试将其作为文本文件读取时,必须阅读 binary 内容。

您必须以二进制模式(rb打开文件,使用struct.unpack读取并转换每个float值(长4个字节),并将成对的float转换为{{1} }。这是一个简单的实现(未经测试):

complex

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...