我使用Python来绘制C++代码中生成的数据。在C++代码中,我使用数组生成和存储数据,并将数据输出到控制台。在
因此,编译c++代码的输出是:
0 1.38889 1.38889 1.38889 1.38889 100
0 2.08333 2.77778 2.77778 52.0833 100
…20多个迭代
现在,在Python方面,我可以使用我的函数,它将数据输出到控制台,但实际上我不能将数据存储在列表或其他东西中
下面是我的python代码:
import heat
heat.heat()
print heat.heat()
type(heat.heat())
输出:
0 1.38889 1.38889 1.38889 1.38889 100
0 2.08333 2.77778 2.77778 52.0833 100
...
0 24.7484 46.755 67.0274 84.5801 100
0 24.7664 47.2768 67.0564 84.9026 100
48
type 'int'
我是Sug新手,所以我的命名约定很糟糕,但是在我的C++代码中,我只需要一个函数来导入,所以这就是为什么。我的{{CD1}}函数使用雅可比迭代来解决热传导问题,其中的值已经在C++文件中被硬编码了。基本上,我只想将数据绘制成图形,但是我的heat.heat()
函数只输出到屏幕。在
我建议使用subprocess.check_output() function。此函数允许您执行任意命令/程序,并在Python中将其输出捕获为字符串。示例:
变量“output”现在包含命令的输出,您可以使用任何常用的string methods来解析它。根据您的用例,您可能需要也可能不需要
shell=True
参数。主要区别在于该命令是在默认的shell环境中执行还是仅仅作为子进程执行。这些文档有更详细的信息和一些您应该阅读的警告。(如果“要执行的命令”可能来自不受信任的源,请不要将其设置为true!)在使用此选项无法捕获本机python函数的输出,因此有两个选项:
如果您的
heat()
函数不仅仅是调用可执行文件,那么您可以在启动现有脚本的包装器脚本中使用subprocess.check_output()
,并将所有输出处理转移到该脚本中。相关问题 更多 >
编程相关推荐