1

Python スクリプト (3.4) の重要な変数を初期化し、エンド ユーザーがコマンド ライン オプションを使用してこれらの変数の定義を変更できるようにしたいと考えています。argparse が進むべき道のようです。私はこちらを見て始めましたが、これは以下のユースケースを除くすべてのユースケースで機能しました:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--con',dest='targFileName',default='targets.con')
args = parser.parse_args()
print(targFileName)

エラーが発生します:

bash-4.1$ python test.py
Traceback (most recent call last):
File "test.py", line 7, in <module>
print(targFileName)
NameError: name 'targFileName' is not defined.

確かに私はドキュメントを誤解しています。何が欠けていますか?

4

1 に答える 1

1

を使用args = parser.parse_args()しますが、グローバル スコープ内のすべての引数を定義するわけではありません。これは、引数の属性を持つクラスのインスタンスを返すだけです。その引数を取得するには、 を使用しますargs.targFileName。を使用できるように言うこともargs = vars(parser.parse_args())できますargs['targFileName']

于 2016-04-11T23:19:39.177 に答える