2016-12-07 4 views
0

Я использую следующие аргументы для моего сценария с doctoptdocopt логического аргумент питон

Usage: 
GaussianMixture.py --snpList=File --callingRAC=File 

Options: 
-h --help  Show help. 
snpList  list snp txt 
callingRAC  results snp 

Я хотел бы добавить аргумент, что есть условное следствие по моему сценарию: исправить мои ДАННЫЕ или не исправить мои ДАННЫЕ. Что-то вроде:

Usage: 
GaussianMixture.py --snpList=File --callingRAC=File correction(--0 | --1) 

Options: 
-h --help  Show help. 
snpList  list snp txt 
callingRAC  results snp 
correction  0 : without correction | 1 : with correction 

И я хотел бы добавить в мой сценарий к if в некоторых функциях

def func1(): 
    if args[correction] == 0: 
     datas = non_corrected_datas 
    if args[correction] == 1: 
     datas = corrected_datas 

Но я не знаю, как писать его в использовании ни в моем сценарии.

Спасибо за любую помощь

ответ

3

EDIT: Мой первоначальный ответ не принимать во внимание требования OP для --Коррекция быть обязательным. Синтаксис был неправильным в моем первоначальном ответе. Вот пример:

#!/usr/bin/env python 
"""Usage: 
    GaussianMixture.py --snpList=File --callingRAC=File --correction=<BOOL> 

Options: 
    -h, --help   Show this message and exit. 
    -V, --version  Show the version and exit 
    --snpList   list snp txt 
    --callingRAC  results snp 
    --correction=BOOL Perform correction? True or False. [default: True] 

""" 

__version__ = '0.0.1' 

from docopt import docopt 

def main(args): 
    args = docopt(__doc__, version=__version__) 
    print(args) 

    if args['--correction'] == 'True': 
     print("True") 
    else: 
     print("False") 

if __name__ == '__main__': 
    args = docopt(__doc__, version=__version__) 
    main(args) 

Пожалуйста, дайте мне знать, если это сработает для вас.

+0

Спасибо за это решение, это работает. Но я действительно хотел бы иметь обязательный аргумент с исправлением или без него, потому что пользователи могут забыть необязательный аргумент и иметь данные, которые не были исправлены по ошибке, если они не знакомы с этим, если они обязательны, они будут иметь ошибку. Но я могу добавить предупреждение, тем временем я нахожу лучшее решение :) спасибо в любом случае! – Elysire

+0

Вы можете попробовать сделать корректирующий мандалист (удалить скобки) и присвоить ему значение true/false, например: –

+1

Использование: GaussianMixture.py --snpList = Файл --callingRAC = Коррекция файла = (True | False) –

Смежные вопросы