2015-06-17 23 views
5

için isteğe bağlı değer argparse:Bu üç olgu ayırt etmek istediğiniz argüman

  • bayrak her python example.py mevcut değildir; Bayrak şu an mevcut fakat python example.py -t bir değere sahip değildir; ve bayrağı python example.py -t ~/some/path değerine sahiptir.

Bunu Python argparse ile nasıl yapabilirim? İlk iki vaka action='store_true' tarafından karşılanacaktır, ancak üçüncü vaka geçersiz olacaktır.

cevap

6

Sen nargs='?' ile yapabilirsiniz: mümkünse

Bir argüman komut satırından tüketilen olacak ve tek bir öğe olarak üretti. Komut satırı argümanı yoksa, varsayılan olarak değeri üretilecektir. İsteğe bağlı bağımsız değişkenler için, ek bir durum olduğunu unutmayın - seçenek dizesi mevcut ancak ve ardından bir komut satırı bağımsız değişkeni. Bu durumda const 'dan gelen değer üretilecektir.

Sizin üç durumda

verecekti:

  1. default değeri;
  2. const değeri; ve
  3. '~/some/path'

sırasıyla.

İlgili konular