1

我正在使用 linux-gpib 库与台式设备通信。我可以要求设备从它的缓冲区中输出,然后它会流式传输到标准输出。我使用类似的东西:

import gpib 

gpib.write(16,"FORM3;OUTPDATA;") #FORM3 is binary

data=gpib.read(16,10000)

我不确定输出格式是什么样的,我忘记了数据是如何分隔的。但我认为我需要执行某种 scanf 函数来抓取浮点数并将它们放入数组中。

我安装了 numpy,并认为应该有一种方法可以让 python 从流中获取浮点数并将它们放入数组中。

谷歌没有多大帮助,numpy 对我来说真的很新。我知道 MATLAB 和 C 命令没问题。

4

1 回答 1

1

如果您将数据读取到字符串中,如上所述,请使用numpy.fromstring

data = '1 2 3 4 5 6 7 8'
print np.fromstring(data, sep=' ')
# [ 1.  2.  3.  4.  5.  6.  7.  8.]

通常在 Python 中,更一般的解析是使用正则表达式而不是 scanf 完成的。在 Python 中查看sscanf

于 2011-06-17T20:27:00.123 回答