2015-05-29 6 views
-2

Попробуйте этот код от Github.com в файле xml. Я получаю Данное сообщение об ошибке:синтаксический анализ файла drugbank.xml

usage: drugbank.py [-h] --input INPUT 
drugbank.py: error: the following arguments are required: --input/-i 

Будучи новым для Python, что это могло означать? Вот длинный код:

def run(input): 
    """Writes relational database text files for drugs, drug_target, drug_target_action, and targets tables. 
    Input: the path of a DrugBank xml file. 
    Output: text files that can be used as inputs to SQL tables. 
    Method: 
     1. Read and parse xml file. 
     2. Extract data and save records as key, value pairs. 
     3. Write output files.""" 
    #output file names 
    drugs_out = input + '.drugs.txt' 
    drug_target_out = input + '.drug_target.txt' 
    drug_target_action_out = input + '.drug_target_action.txt' 
    targets_out = input + '.targets.txt' 

    #counter for number of records in each file 
    record_counts = Counter() 

    #open input file and parse xml 
    #get drugbank namspace 
    print('Reading and parsing xml file.') 
    tree = etree.ElementTree(file=input) 
    #a few namespace tricks to make the code more readable 
    ns = tree.getroot().nsmap 
    ns['db'] = ns[None] 
    del ns[None] 

    drugs = tree.xpath('db:drug', namespaces=ns) 

    code........ 


def main(): 

    #command line arguments 
    parser = argparse.ArgumentParser(
     description='writes relational database text files for drugs, drug_target, drug_target_action, and targets', 
     epilog='drugbankxml2db 1.0β1 ©2014 Michael Yourshaw all rights reserved', 
    ) 
    parser.add_argument('--input', '-i', required=True, 
         help='drug bank xml file downloaded from http://www.drugbank.ca/system/downloads/current/drugbank.xml.zip',) 
    args = parser.parse_args() 

    run(input=args.input) 

if __name__ == "__main__": sys.exit(main()) 
+1

Пожалуйста, включите полную отслеживающий ваше сообщение об ошибке. –

+0

drugbank.py: ошибка: аргумент - вход/-i требуется – wakamdr

+0

похоже, что вам нужно дать аргумент. попробуйте 'drugbank.py -i fileyoudownloaded.xml' – EdgeCaseBerg

ответ

1

Ваш сценарий требует, чтобы задать значение для --input аргумента:

parser.add_argument('--input', '-i', required=True, 
        help='drug bank xml file downloaded from http://www.drugbank.ca/system/downloads/current/drugbank.xml.zip',) 

required=True означает, что вы имеют включить -i или --input при запуске скрипта.

Вы должны загрузить Указанные URL самостоятельно, распаковать файл, а затем указать сценарий к нему с:

drugbank.py -i drugbank.xml 
+0

Спасибо за ввод. Изучаю код. Просто интересно, как указать сценарий в файл. Простите мои требования. – wakamdr