首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从python2.7调用用freefem++软件编写的函数

从python2.7调用用freefem++软件编写的函数
EN

Stack Overflow用户
提问于 2014-11-07 18:50:48
回答 2查看 1.1K关注 0票数 1

我用python编写了一段代码,我有一个函数(f,用Freefem++编写),它的输入来自python的代码。问题是我不知道如何在我的python代码中调用用freefem++编写的函数。

这段代码是用python编写的,函数"f“假定是用Freefem++编写的。

代码语言:javascript
复制
 for i in range (popsize):

         pop[i][N]=f(pop[i][0],pop[i][1])

提前谢谢你。

EN

回答 2

Stack Overflow用户

发布于 2018-05-23 05:35:42

Freefem++是用C++编写的,据我所知,没有用C++编写的允许Freefem++和Python语言之间通信的应用程序接口。

我的建议如下:

  1. 编写您的FreeFem++代码,并在代码中嵌入一个用于将数据保存到临时文件的部分。还可以使用subprocess模块直接“输出”结果并从python中读取标准输出。
  2. 从Python中调用FreeFem代码。假设代码名为"simulation.edp",那么在python中,您可以将代码编写为:

代码语言:javascript
复制
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模拟的输出。

  1. 使用python读取FreeFem++代码的输出(使用子进程模块的std输出或由“simulation.edp”输出的文件内容),然后对其进行处理。

您可以尝试一种更直接的方法,在C++中工作,但由于缺乏关于FreeFem++内核开发的良好文档,这条道路要困难得多。在这里,您将找到一些如何将简单的C++类与FreeFem++ Link to Githb接口的示例。

票数 0
EN

Stack Overflow用户

发布于 2021-01-14 00:24:04

A.G.的答案是好的,但我想说的是,你可以利用管道,它允许你在两个程序之间进行通信,而不使用文件,这是一个瓶颈。请参阅此处的示例Pipeline (Wikipedia)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26799567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档