我从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)
我无法找到此错误的来源,如何解决此问题?
答案 0 :(得分:1)
获取此错误的唯一方法是询问不存在的索引 - 在这种情况下,option_string
必须为空。
答案 1 :(得分:1)
在argparse中,您无法将空参数字符串传递给add_argument。 argparse试图在您传递的空字符串(“”)中找到有效的prefix_char(例如“ - ”或“ - ”),从而导致错误。试试这个:
parser.add_argument("-f", dest="TF", metavar="<file>",
help="input file with transcription factors")