2016-10-14 6 views
1

argparseを使用して、自分で作成したpythonパッケージの一部である解析プログラム用のコマンドラインパーサを含む小さなスクリプトを作成しました。それは完全に動作しますが、私はそれを制御する方法が本当に好きではありません。コードはスクリプト自体これに追加Nicerコマンドラインparse python

def myAnalysis(): 

    parser = argparse.ArgumentParser(description=''' 
     lala''') 
    parser.add_argument('-d', '--data',help='') 
    parser.add_argument('-e', '--option_1', help='', default=False, required=False) 
    parser.add_argument('-f', '--option_2', help='', default=False, required=False) 


    # combine parsed arguments 
    args = parser.parse_args()code here 

にどのように見えるか

これはこれではなく動作、解析パッケージ

entry_points={ 
      'console_scripts': [ 
       'py_analysis = edit.__main__:myAnalysis' 
      ] 

私が言ったように設定ファイルにいくつかのより多く存在しています何か問題がある。私が使用しなければならないデータを分析するには

py_analysis --data path_to_data_file 

時々、私はいくつかのオプションが必要です。このためには、これは一種の醜いです、私の個人的な好みではローク

py_analysis --data path_to_data_file --option_1 True --option_2 True 

て見える場合があります。

py_analysis path_to_data_file --option_1 --option_2 

私はこれが可能であると確信しています。私はちょうど

+2

は、docを見てみましょうライブラリ/ argparse.html。 'action = 'store_true''が必要です。 –

答えて

5

使用store_trueとアクション

parser.add_argument('-e', '--option_1', help='', default=False, action ='store_true') 

は、それからちょうど--option_1コマンドラインに追加すると、にその値を設定する方法を知りません。

parser.add_argument('-d', '--data',help='') 

によって::、代わりにオプションの位置引数を持って交換するには

1

https://docs.python.org/3/:

parser.add_argument('data_file', help='') 
+1

_type = argparse.FileType()_を追加すると、ファイル名が文字列の代わりにファイル名 – volcano

+0

が直接生成されます。残念ですが、私は2つの回答を受け入れることができません。あなたと@volcanoの組み合わせは、 – Glostas

+0

@Glostas問題なし;) –