将 c++-Programm 的结果导入 python



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

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

当我第一次阅读这个问题时,我立即认为管道输出会起作用。 查看此链接以获得更好的主意:

Linux 问题管道

如果这不起作用,我确实认为将您的输出写入文件并使用您的 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

最新更新