将数据值从 Python 转换为 C

Convert data values from Python to C

对于这个项目,我正在使用 libsvm。

我有一个能够输出特征向量列表的 python 文件,我有一个 C 可执行文件,它采用 2 个 csv 文件、特征向量列表和 svm 模型作为参数和输出csv 文件形式的预测。

现在,我想更改 C 文件,使其将 python 文件的列表输出作为其输入参数来进行预测。这是因为我必须实时 运行 python 代码和 C。因此,如果我必须使用 python 写入 csv 文件并在 C.

中读取文件,延迟将成为一个问题

我试过搜索 cython、子进程模块和 argparse 之类的东西。但是,这些似乎用于在 Python 中执行 C 和 C 中的 Python 函数。有人可以帮助了解如何将数据从 python 传输到 C 吗?谢谢。

这将取决于您接受作为输入的延迟量。 我不熟悉 libsvm 所以我承认你可以在我的解决方案中阅读你的特征向量:

第一个解决方案(更简单但更慢)是对 C 库做一点 Python 如下:

#/usr/bin/python
def print_vector(vec):
  first =  true;
  print("[")
  for i in vec: 
    if first: 
      first = false
    else:
      print(',')
    print(i)
  print("]")

并使用 <string.h> 库从 C 中的标准输入解析它并使用 atoi.

然后您将执行如下命令:

./my_python_program | ./my_c_program

第二种解决方案(更快但更难)是在您的 python 程序和 C 之间实现管道连接,甚至是 TCP 套接字连接。

例如,如果您未满 Linux,您可以查看 Linux Documentation