Python optpass选项操作
我正在使用optparse,我正在编写一个包含3个命令行参数的脚本。第一个(-qtype)指定是需要从本地文件还是从web调用信息。根据这一点,第二个参数(-qname)要么是一个核苷酸字符串,要么是一个FASTA文件名。第三个参数(-output)是输出文件名 我的问题是,是否有一个optpasse选项操作可以用于第一个参数(因为标准的“存储”、“附加”等在本例中不适用) 以下是我到目前为止的情况:(可能有错误) 我有问号,[…]我对如何解决这个问题感到困惑 非常感谢您的帮助 选项1:使用参数而不是选项 这可能是一种可行的方法,因为您可能需要用户的所有三个输入才能正常运行 根据 程序应该能够在没有任何选项的情况下正常运行 在这种情况下,您的解决方案Python optpass选项操作,python,arguments,action,option,optparse,Python,Arguments,Action,Option,Optparse,我正在使用optparse,我正在编写一个包含3个命令行参数的脚本。第一个(-qtype)指定是需要从本地文件还是从web调用信息。根据这一点,第二个参数(-qname)要么是一个核苷酸字符串,要么是一个FASTA文件名。第三个参数(-output)是输出文件名 我的问题是,是否有一个optpasse选项操作可以用于第一个参数(因为标准的“存储”、“附加”等在本例中不适用) 以下是我到目前为止的情况:(可能有错误) 我有问号,[…]我对如何解决这个问题感到困惑 非常感谢您的帮助 选项1:使用参数
import optparse
import sys
if __name__ == '__main__':
parser = optparse.OptionParser()
(options, args) = parser.parse_args()
if len(args) != 3:
print 'please specify all required arguments - qtype qname output_file'
sys.exit(-1)
qtype, qname, output = args
if qtype == 'web':
pass
elif qtype == 'local':
pass
else:
print 'no qtype specified! exiting'
sys.exit(-1)
然后,您可以将所有参数用作字符串,直接处理它们,或者将它们转换为web请求的文件/url
命令行示例:
program.py web blah blah
选项2:无论如何都要使用选项
用法示例:
program.py --qtype web --qname blah --output blah
我将非常感谢任何有助于找到适当答案的人。谢谢大家!!如果您发布您当前拥有的OptPass代码,我们可能会更容易理解您的问题。是否允许按此顺序发布
program.py-qname foo-qtype web-output file.bin
?非常感谢您的回答!这很有帮助。那么,我应该写一个函数来指定如何处理字符串吗?(在这种情况下,我想从NCBI获取序列,给定它们的ID#s-在“web”中,或者加载FASTA文件-在“local”中)。我认为这是有意义的。我省略了很多输入检查和应用程序代码,因为你的问题似乎更多的是关于使用OptPass。是的。我只是想澄清一下,你也有类似的想法。再次感谢!
import optparse
import sys
if __name__ == '__main__':
parser = optparse.OptionParser()
parser.add_option('--qtype', action='store', dest='qtype', type='string')
parser.add_option('--qname', action='store', dest='qname', type='string')
parser.add_option('--output', action='store', type='string', dest='filename')
(options, args) = parser.parse_args()
if options.qtype == 'web':
pass
elif options.qtype == 'local':
pass
else:
print 'no qtype specified! exiting'
sys.exit(-1)
program.py --qtype web --qname blah --output blah