argparse
Dokümantasyon oldukça iyi ama birkaç yararlı detaylar dışında yapraklar hangi belirgin olmayabilir. (@Diego Navarro bundan biraz bahsetti ama cevabını biraz genişletmeye çalışacağım.) Temel kullanım aşağıdaki gibidir:
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--my-foo', default='foobar')
parser.add_argument('-b', '--bar-value', default=3.14)
args = parser.parse_args()
Geri döndüğünüz nesne parse_args()
bir 'Ad Alanı' nesnesidir: Üye değişkenleri komut satırı argümanlarınızdan sonra adlandırılan bir nesne. Namespace
Nesne Eğer argümanları ve bunlarla ilişkili değerlere erişir nasıl:
args = parser.parse_args()
print args.my_foo
print args.bar_value
( argparse
Değişkenleri adlandırırken bağımsız değişken adlarınızdaki '-' karakterinin alt çizgi ile değiştirildiğini unutmayın .)
Birçok durumda, argümanları basitçe değeri olmayan bayraklar olarak kullanmak isteyebilirsiniz. Bunları argparse'ta şu şekilde ekleyebilirsiniz:
parser.add_argument('--foo', action='store_true')
parser.add_argument('--no-foo', action='store_false')
Yukarıdaki, sırasıyla True değerine sahip 'foo' ve False değerine sahip 'no_foo' adlı değişkenler oluşturur:
if (args.foo):
print "foo is true"
if (args.no_foo is False):
print "nofoo is false"
Bağımsız değişken eklerken "zorunlu" seçeneğini kullanabileceğinizi de unutmayın:
parser.add_argument('-o', '--output', required=True)
Bu şekilde, komut satırında bu bağımsız değişkeni atlarsanız, argparse
eksik olduğunu söyler ve komut dosyanızın yürütülmesini durdurur.
Son olarak, vars
eğer hayatı sizin için kolaylaştırırsa , fonksiyonu kullanarak argümanlarınızın dikte yapısını oluşturmanın mümkün olduğunu unutmayın .
args = parser.parse_args()
argsdict = vars(args)
print argsdict['my_foo']
print argsdict['bar_value']
Gördüğünüz gibi vars
, argüman adlarınızı anahtarlar ve değerlerini er, değerler olarak içeren bir diksiyon döndürür.
Yapabileceğiniz başka birçok seçenek ve şey var, ancak bu en önemli, yaygın kullanım senaryolarını kapsamalıdır.
sys.argv
zaman istediğiniz argümanı kontrol edin ...