2016-04-03 22 views
0

Satır yardımcı programının yürütülmesini komut olarak Argparse kullanıyorum. Tanımlanmış çeşitli argümanlarım var (aşağıda birkaç tanesi gösteriliyor). Ben argüman adı, yardım, kendi sütunlarında veritabanına yazmak, saklamak için bir ihtiyacım var.Argparse'deki parse.add_argument değerlerini ayıklama - python

Bu parse.add_argument öğesinden bu üçünün nasıl alınacağını ve bazı diziler/listelerde nasıl kaydedileceğinden emin değilim. Herhangi bir girişi paylaşabiliyorsanız, bu yararlı olur.

 parser.add_argument("num",help="The fibnocacci number to calculate:", type=int) # how to take the strings on the command line and turn them into objects 
    parser.add_argument("-f","--file",help="Output to the text file",action="store_true") 

cevap

0

Diğerleri commandlline, args ad alanından değerler ayrıştırma sonuçlarını istediğini düşünüyorum. Ama bir ayrıştırıcı tanımlayabilir etkileşimli kabuğunda add_argument yöntem

tarafından tanımlanan Action nesnesi olmasını şüpheli:

In [207]: parser=argparse.ArgumentParser() 

In [208]: arg1= parser.add_argument("num",help="The fibnocacci number to calculate:", type=int) 

In [209]: arg2=parser.add_argument("-f","--file",help="Output to the text file",action="store_true") 

In [210]: arg1 
Out[210]: _StoreAction(option_strings=[], dest='num', nargs=None, const=None, default=None, type=<type 'int'>, choices=None, help='The fibnocacci number to calculate:', metavar=None) 

In [211]: arg2 
Out[211]: _StoreTrueAction(option_strings=['-f', '--file'], dest='file', nargs=0, const=True, default=False, type=None, choices=None, help='Output to the text file', metavar=None) 

In [212]: parser._actions 
Out[212]: 
[_HelpAction(option_strings=['-h', '--help'], dest='help', nargs=0, const=None, default='==SUPPRESS==', type=None, choices=None, help='show this help message and exit', metavar=None), 
_StoreAction(option_strings=[], dest='num', nargs=None, const=None, default=None, type=<type 'int'>, choices=None, help='The fibnocacci number to calculate:', metavar=None), 
_StoreTrueAction(option_strings=['-f', '--file'], dest='file', nargs=0, const=True, default=False, type=None, choices=None, help='Output to the text file', metavar=None)] 

add_argument (action parametreye dayalı) bir Action alt sınıfını oluşturur. Bunu kendi değişkeninize kaydedebilir veya ayrıştırıcının _actions listesinde bulabilirsiniz.

Bu, bazı niteliklerini gösterir, ancak daha fazlasını inceleyebilir ve hatta değiştirebilirsiniz.

In [213]: arg1.help 
Out[213]: 'The fibnocacci number to calculate:' 

In [214]: arg1.type 
Out[214]: int 

In [215]: arg1.dest 
Out[215]: 'num' 

In [217]: vars(arg1) 
Out[217]: 
{'choices': None, 
'const': None, 
'container': <argparse._ArgumentGroup at 0x8f0cd4c>, 
'default': None, 
'dest': 'num', 
'help': 'The fibnocacci number to calculate:', 
'metavar': None, 
'nargs': None, 
'option_strings': [], 
'required': True, 
'type': int} 

Bu özelliklerini anlamak için argparse.py dosyasındaki sınıf tanımlarını incelemek için birçok gerekir.

+0

arg1.type yaptığımda int olsun ve int değil? –

+0

Bunu print (arg1.type) 'ile elde ediyorum. int' bir sınıf ve bir tamsayı üreten bir işlevdir. – hpaulj