1

いくつかのシミュレーションを実行する Python スクリプトを作成していますが、多くの入力パラメーター (約 20) を必要とします。そこで、すべてのシミュレーション パラメータを外部ファイルに含めることを考えていました。これを行う最も簡単な方法は何ですか?

私が見つけた1つの答えは、スタックオーバーフローの質問にありましたフルパスを指定してモジュールをインポートする方法? すべてのシミュレーション パラメータをファイル parm.py に配置し、imp パッケージを使用してそのモジュールをインポートします。

これにより、このスクリプトを実行するユーザーは、任意のファイルを入力として提供できます。そのようにモジュールをインポートすると:

parm = imp.load_source('parm', '/path/to/parm.py')

次に、すべてのパラメーターを次のように参照する必要があります

parm.p1, parm.p2

ただし、スクリプトでは p1、p2 などと呼びたいだけです。それを行う方法はありますか?

4

2 に答える 2

7

外部ファイルから任意のコードをインポートすることは悪い考えです。

パラメータを設定ファイルに入れて、Python のConfigParserモジュールを使用して読み込みます。

例えば:

==> multipliers.ini <==
[parameters]
p1=3
p2=4

==> multipliers.py <==
#!/usr/bin/env python

import ConfigParser

config = ConfigParser.SafeConfigParser()
config.read('multipliers.ini')


p1 = config.getint('parameters', 'p1')
p2 = config.getint('parameters', 'p2')

print p1 * p2
于 2012-04-24T05:26:21.083 に答える
1

これを使用することもできますexecfile()が、まったく別の方法を検討する必要があります。

于 2012-04-24T04:49:52.773 に答える