私はいくつかのシミュレーションを実行するPythonスクリプトを書いていますが、入力パラメータ(約20)が多くなります。だから、私はすべてのシミュレーションパラメータを外部ファイルに含めることを考えていました。これを行う最も簡単な方法は何ですか?私が見つけた外部ファイルをPythonに組み込む
一つの答えは、スタックオーバーフローで質問How to import a module given the full path?、ファイルparm.py内のすべてのシミュレーションパラメータを置くとIMPパッケージを使用してそのモジュールをインポートしました。
これにより、このスクリプトを実行するユーザーは、入力として任意のファイルを提供できます。私はそのようにモジュールをインポートした場合:
parm = imp.load_source('parm', '/path/to/parm.py')
を、すべてのパラメータが
parm.p1, parm.p2
として参照する必要があるしかし、私はちょうど私の中などP1、P2、としてそれらを参照したいですスクリプト。それを行う方法はありますか?
をあなたは「インポート*」のようなものを探している - はお勧め。 。 http://stackoverflow.com/questions/2360724/in-python-what-exactly-does-import-importの回答を参照してください。 – gimel
解決策:しないでください。とにかく、コードをトレースするのがはるかに難しくなるので、一般的には 'import ...'からのインポートを行うべきではありません。 –
私はシミュレーションのためのパラメータのリストをユーザに提供し、彼が供給しないパラメータについては、デフォルトが使用されるようにしたい。だから、私は自分のコードを実行して、パラメータのすべてのデフォルト値を割り当てた後、ユーザーが提供したすべての変数を上書きするexecfile( 'parm.py')を実行することを考えていました。これを行うよりエレガントな方法はありますか? – Spot