将 c++ 程序的结果导入 python

Import results of a c++-Programm to python

我目前正在处理一些基于 python 的 squish gui 测试。其中一些测试调用另一个工具,用 c++ 编写并构建为可执行文件。我可以完全访问该工具,并且可以对其进行修改。测试通过命令行调用它,当前评估错误代码并根据错误代码值创建通过或失败。 我认为有更好的方法吗?一个问题是,错误代码仅限于 unix 系统上的 uint8,我希望能够与我的 python 脚本共享的不仅仅是错误代码。

我的第一个想法是打印 json 或 xml 中文件中的所有内容并阅读该文件。但这对我来说听起来有点不对劲。有人有更好的主意吗?

当我第一次读到这个问题时,我立即想到管道输出会起作用。检查此 link 以获得更好的主意:

Linux Questions Piping

如果这不起作用,我认为将输出写入文件并使用 python 脚本读取它可以完成工作。

您可以通过 Python 捕获外部进程的输出并按您认为合适的方式进行处理。

这是一个非常简单的变体:

import os
import subprocess

def main():
    s = os_capture(["ls"])
    if "ERROR" in s:
        test.fail("Executing 'ls' failed.")

def os_capture(args, cwd=None):
    if cwd is None:
        cwd = os.getcwd()
    stdout = subprocess.Popen(
        args=args,
        cwd=cwd,
        stdout=subprocess.PIPE,
        stderr=subprocess.STDOUT).communicate()[0]

    return stdout