我在python中编写代码,我有一个函数(f,用Freefem ++编写),输入来自python中的代码。问题是我不知道如何在我的python代码中调用用freefem ++编写的函数。
这段代码在python中,函数" f",假设在Freefem ++中。
for i in range (popsize):
pop[i][N]=f(pop[i][0],pop[i][1])
提前谢谢。
答案 0 :(得分:0)
Freefem ++是用C ++编写的,据我所知,没有用C ++编写的API允许Freefem ++和Python之间的通信。
我建议如下:
编写FreeFem ++代码并在代码中嵌入一个部分,将数据保存到临时文件中。也可以使用subprocess
模块直接“cout”结果并从Python读取标准输出。
从python中调用FreeFem代码。假设代码名为“simulation.edp”,然后从python中编写代码:
import subprocess
dep_file_path="simulation.edp"
bashCommand = ["Freefem++", edp_file_path]
process = subprocess.Popen(bashCommand, stdout=subprocess.PIPE)
output, error = process.communicate()
print(output)
这样,您应该能够通过执行python代码来读取FreeFem模拟的输出。
你可以通过使用C ++来尝试更直接的方法,但由于缺乏关于FreeFem ++内核开发的良好文档,这条路径更难。在这里,您将找到一些如何使用FreeFem ++ Link to Githb连接简单C ++类的示例。
答案 1 :(得分:0)
AG 的回答很好,但我想说的是,您可以使用管道,它允许您在两个程序之间进行通信,而无需使用文件,这是一个瓶颈。参见此处的示例 Pipeline (Wikipedia)