问题描述
我的代码
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);
以下是文件中实际的数据。我想读。
我想在python中读取以上文件数据。
解决方法
根据C代码判断,这些数字被写为二进制浮点数,所显示的是文件内容的十六进制输出。在这种情况下,当您尝试将其作为文本文件读取时,必须阅读 binary 内容。
您必须以二进制模式(rb
打开文件,使用struct.unpack
读取并转换每个float值(长4个字节),并将成对的float转换为{{1} }。这是一个简单的实现(未经测试):
complex