将数据值从 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。
对于这个项目,我正在使用 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。