c++ - C、C++ 与 Python 的接口(interface)

标签 c++ python c bash

我的 C++ 代码呈指数级增长。每次运行我的代码(不同的运行条件)时,我有许多变量(主要是 bool 值)需要更改。过去,我使用 main( int argc, char* argv[]) 函数的参数命令行输入完成了此操作。

由于这种方法变得很麻烦(我有 18 种不同的运行条件,因此有 18 个不同的参数 :-( ),我想转向与 python 的接口(interface)(如果需要的话 Bash )。理想情况下,我想编写一个 python脚本,我在其中设置数据成员的值,然后运行代码。

有没有人有任何指示/信息可以帮助我?更好的是我可以查找的简单编码示例或 URL。

从原始问题编辑:

抱歉,我认为我的问题不清楚。我不想在 C++ 中使用 main( int argc, char* argv[]) 特性。而不是在命令行上设置变量。我可以使用 python 在我的 C++ 代码中声明和初始化数据成员吗?

再次感谢迈克

最佳答案

使用 subprocess 从 python 执行你的程序。

import subprocess as sp
import shlex

def run(cmdline):
  process = sp.Popen(shlex.split(cmdline), stdout=sp.PIPE, stderr=sp.PIPE)
  output, err = process.communicate()
  retcode = process.poll()
  return retcode, output, err

run('./a.out '+arg1+' '+arg2+' '+...)

关于c++ - C、C++ 与 Python 的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5960791/

相关文章:

c - 麻烦制作一个计算器,它可以告诉我 C 中两个数字的商的分数和小数形式

c - 为什么这个数学不适用于宏?

c++ - 二进制数据 : write an entire object into a file or separated variables (no object)? 哪个性能更好

python - SQLAlchemy:没有名为 'mysql' 的模块

python - Python 中的 Scrapy 迭代问题

python 具有共享变量和异步的多处理?

c - 停止 fgetc 根据输入数 + 1 重复循环?

按值返回中的 C++ 复制构造函数激活

c++ - 当 streambuf 被之前的 async_read 填充时,boost::asio::async_read 进入 boost::asio::streambuf block

c++ - 如何在结构中动态添加数据,该结构是指向指针数组的指针