我需要将非常大的数据集(在 1-10 百万条记录之间,可能更多)从特定领域的语言(其唯一的输出机制是 C 风格的fprintf
语句)传输到 Python。
目前,我正在使用 DSLfprintf
将记录写入平面文件。平面文件如下所示:
x['a',1,2]=1.23456789012345e-01
x['a',1,3]=1.23456789012345e-01
x['a',1,4]=1.23456789012345e-01
y1=1.23456789012345e-01
y2=1.23456789012345e-01
z['a',1,2]=1.23456789012345e-01
z['a',1,3]=1.23456789012345e-01
z['a',1,4]=1.23456789012345e-01
如您所见,每条记录的结构都非常简单(但将双精度浮点数表示为 20 字符的字符串效率非常低!):
<variable-length string> + "=" + <double-precision float>
我目前正在使用 Python 读取每一行并将其拆分为“=”。
我可以做些什么来使表示更紧凑,以便让 Python 更快地阅读?是否可以使用某种二进制编码fprintf
?