【python】fortranのnamelistで書かれた設定ファイルを読み込む(f90nml)
以前fortranのnamelistという機能を紹介した。
数字を羅列しただけの平文ファイルとちがってnamelistはfortran独自のものなので、ほかの言語で読み込む場合は何らかの工夫が必要になる。
「fortranで計算した結果をpythonのmatplotlibでグラフ化したい」というような場合は多々あるだろう。pythonではそのために「f90nml」というライブラリが用意されている。
インストールについてはpipが使える環境であれば簡単にできる。またgit cloneしてインストールすることもできる。インストールについては以下を参照されたい。
f90nml 0.2.1 : Python Package Index
ただしこのドキュメントには1ヶ所間違いがある。管理者権限のないユーザでも--userをつければインストールできるとあるが、オプションをつける位置が間違っており、正しくは以下のようにする必要がある。
python setup.py install --user
f90nmlではreadというメソッドでnamelistをリストとして読み込み、writeというメソッドで出力できる。
具体的な使い方として、前回の記事で使ったparams.inのhogeというリストのyyという要素を取得するには、次のようにする。
import f90nml
params=f90nml.read('params.in')
yy=params['params']['yy']