2

だから私は少しピクルスにいます。コマンドライン入力を必要とするFortran77コード(なぜこのプログラムがF77で書き直されたのかは謎です)、つまりユーザーに入力を求めるコードを書き込もうとしています。現在、プログラムは GNUplot を使用してプロットしていますが、GNUplot フィッティング ルーチンは私の目には理想的とは言えず、Fortran から GNUplot を呼び出すのは、控えめに言っても面倒です。

私は主に Numpy、Scipy、Matplotlib を使用して、フィッティングとプロットのニーズを満たしてきました。PythonでF77プログラムを呼び出して、他のF77プログラムと同じように実行する方法があるかどうか疑問に思っていました.

F2PY については知っていますが、さまざまな意見を聞いたことがあります。私もpyexpectを使用してそこから行くことを考えましたが、画面上で予想されるプロンプトの変更を処理する方法に悪い経験があります(または単に間違って使用しています)。

これに関する情報をありがとう。

4

2 に答える 2

2

Fortran プログラムによって生成されたデータをファイルにダンプし、それを python から読み取ることはできませんか?

Numpy はバイナリ ファイルを読み取り、それを配列として扱うことができます。ここから matplotlib に移動するのは簡単です。

于 2011-03-28T22:57:56.120 に答える
1

あなたがやりたいことは、F77 プログラムを実行してから、出力ファイルをすべて python から解析することだけのようです (間違っていたら訂正してください)。Fortran プログラムが最後まで実行されると仮定すると、最も簡単なことは、ユーザーまたは構成ファイルから入力を受け取るように python をセットアップすることです ( http://docs.python.org/library/configparser.htmlを参照)。次に、これらの入力を python プロセス モジュールにフィードします。

http://docs.python.org/library/subprocess.html

F77 実行可能ファイルを実行し、出力を収集して分析/プロットします。Python スクリプトが行う必要があるのは、fortran への入力を準備し、後で指定された場所から結果を取得することだけです。

Doug Hellmann による次の優れたチュートリアルをご覧くださいsubprocess

http://www.doughellmann.com/PyMOTW/subprocess/

于 2011-03-28T23:44:07.247 に答える