2017-11-22 3 views
-1

argの構文解析をさまざまにチェックしようとしています。 -cまたは-lがそのコードだけを呼び出す場合。
これを実行すると、両方のステートメントが呼び出されます。 たとえば、-cが呼び出された場合のみ、-lの実行コードが実行されますか?arg parseが呼び出されているかどうかを確認し、if文で実行するかどうかを確認します。

#!/usr/bin/python3 
import argparse 

parser = argparse.ArgumentParser() 
parser.add_argument('-c', action='store_true') 
parser.add_argument('-l', action='store_true') 

a = parser.parse_args() 
if a.c: 
    { 
     print("get custom config") 
    } 
else: 
    { 
     print("using default config file") 
    } 

b = parser.parse_args() 

if b.l: 
    { 
     print("List files within config") 
    } 
else: 
    { 
     print("Call Normal Code") 
    } 

いつものように助けてくれてありがとう。

+0

Umm。 Pythonは条件ブロックに '{}'を使用しません。 –

+1

'parser.parse_args()'を何度も呼び出す必要はありません。 'args = parser.parse_args()'、 'if args.c'と' if args.l'のように一度やり直してください。 – ZWiki

+0

ポインタをありがとう。{}を取り除いても、それと同じです...両方を呼び出す1が指定されていても –

答えて

0

ありがとうございました。

import argparse 

parser = argparse.ArgumentParser() 
parser.add_argument('-c', action='store_true') 
parser.add_argument('-l', action='store_true') 

args = parser.parse_args() 
if args.c: 
     print("get custom config") 
else: 
     print("use default config code") 

if args.l: 
     print("List files within config") 
+0

条件が必要ですか?パーサはパラメータとしてデフォルトを取ります。 https://docs.python.org/2/library/argparse.html#parser-defaults –

+0

おそらくそうではありませんが、私は各セクションで実行するコードがたくさんあります。どのように私はこれをデフォルトから呼び出すことができますか –

関連する問題