私は、動作するためにファイルパーサーをロードする必要があるメインのPythonモジュールを作成しました。最初は、テキストパーサーモジュールが1つだけでしたが、さまざまなケースに合わせてパーサーを追加する必要があります。
parser_class1.py
parser_class2.py
parser_class3.py
実行中のインスタンスごとに必要なのは1つだけなので、コマンドラインでロードすることを考えています。
mmain.py -p parser_class1
この目的で、メインモジュールが呼び出されるときにロードするパーサーを選択するためにこのコードを作成しました。
#!/usr/bin/env python
import argparse
aparser = argparse.ArgumentParser()
aparser.add_argument('-p',
action='store',
dest='module',
help='-p module to import')
results = aparser.parse_args()
if not results.module:
aparser.error('Error! no module')
try:
exec("import %s" %(results.module))
print '%s imported done!'%(results.module)
except ImportError, e:
print e
しかし、私はこの方法は危険であり、おそらくスターダードではないことを読んでいました。
では、このアプローチは大丈夫ですか?または私はそれを行う別の方法を見つけなければなりませんか?なんで?ありがとう、どんなコメントでも大歓迎です。