Hiçbir değer veya 2 değer alabilen bir komut dosyası için isteğe bağlı argüman yapmaya çalışıyorum, başka bir şey yok. Argparse kullanarak bunu yapabilir misin? Bu birleştirmek yapmak nasılargparse - isteğe bağlı argüman için 2 değeri veya hiçbiri gerekmiyor
parser = argparse.ArgumentParser()
parser.add_argument("-a", "--action", nargs=2, action="store", help="do some action")
args = parser.parse_args()
# output:
# ./script.py -a --> error
# ./script.py -a val1 --> error
# ./script.py -a val1 val2 --> works
: - Tam olarak kabul 2 değerlerini
parser = argparse.ArgumentParser()
parser.add_argument("-a", "--action", nargs="?", const=True, action="store", help="do some action")
args = parser.parse_args()
# output:
# ./script.py -a --> works
# ./script.py -a val1 --> works
# ./script.py -a val1 val2 --> error
sürüm 2: -
# desired output:
# ./script.py -a --> works
# ./script.py -a val1 --> error
# ./script.py -a val1 val2 --> works
sürüm 1 0 veya 1 değerlerini kabul 2 farklı sürümde, betik argüman için 0 veya 2 değerini kabul eder, ancak reddeder Sadece 1 değeri olduğunda?
ihtiyacım olan şey: her iki durumda da bir hata istemezsiniz. './script.py -a foo' veya' ./script.py -a foo bar baz' kullandığınızda ve daha uzun bir hata istersiniz. – xgord
@ xgord ile aynı işlevi görürse, bu tam olarak –
@xgord: bu kontrol, '' a' kullanıldığında, ancak hatalı argüman sayısı ile bir hata ortaya çıkarmakla ilgili ''./Script.py' durumunun ele alınmasıyla ilgili değildir. Bunun yerine ne olmasını beklediniz? –