Индекс строки вне диапазона при преобразовании в argparse - PullRequest
0 голосов
/ 19 ноября 2011

Я изменил с optparse на argparse, но когда я пытаюсь запустить его, я получаю следующую ошибку:

    if not option_string[0] in self.prefix_chars:
IndexError: string index out of range

Мой код:

usage = "%prog -f <fasta TFs> -a <database all> -s <database small> -d <pfam database> [options]"
version = "1.0.1"
description = " "
epilog = " "\
         " "
parser = argparse.ArgumentParser(usage=usage, description=description,
                      version="%prog "+version, epilog=epilog)

# options for running the program
# TF file
parser.add_argument("-f", "",  dest="TF", metavar="<file>",
                        help="input file with transcription factors")
parser.set_defaults(fasta=None)

Я не могу найти гдеэта ошибка возникает, как это исправить?

Ответы [ 2 ]

1 голос
/ 31 августа 2013

В argparse вы не можете передавать пустые строки аргументов в add_argument.argparse пытается найти допустимый prefix_char (например, «-» или «-») в пустой строке, которую вы передаете («»), вызывая ошибку.Попробуйте вместо этого:

parser.add_argument("-f",  dest="TF", metavar="<file>",
                    help="input file with transcription factors")
1 голос
/ 19 ноября 2011

Единственный способ получить эту ошибку - запросить индекс, который не существует - в этом случае option_string должно быть пустым.

...