将 c++ 程序的结果导入 python
Import results of a c++-Programm to python
我目前正在处理一些基于 python 的 squish gui 测试。其中一些测试调用另一个工具,用 c++ 编写并构建为可执行文件。我可以完全访问该工具,并且可以对其进行修改。测试通过命令行调用它,当前评估错误代码并根据错误代码值创建通过或失败。
我认为有更好的方法吗?一个问题是,错误代码仅限于 unix 系统上的 uint8,我希望能够与我的 python 脚本共享的不仅仅是错误代码。
我的第一个想法是打印 json 或 xml 中文件中的所有内容并阅读该文件。但这对我来说听起来有点不对劲。有人有更好的主意吗?
当我第一次读到这个问题时,我立即想到管道输出会起作用。检查此 link 以获得更好的主意:
如果这不起作用,我认为将输出写入文件并使用 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
我目前正在处理一些基于 python 的 squish gui 测试。其中一些测试调用另一个工具,用 c++ 编写并构建为可执行文件。我可以完全访问该工具,并且可以对其进行修改。测试通过命令行调用它,当前评估错误代码并根据错误代码值创建通过或失败。 我认为有更好的方法吗?一个问题是,错误代码仅限于 unix 系统上的 uint8,我希望能够与我的 python 脚本共享的不仅仅是错误代码。
我的第一个想法是打印 json 或 xml 中文件中的所有内容并阅读该文件。但这对我来说听起来有点不对劲。有人有更好的主意吗?
当我第一次读到这个问题时,我立即想到管道输出会起作用。检查此 link 以获得更好的主意:
如果这不起作用,我认为将输出写入文件并使用 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