python使用(options, args) = parser.parse_args() 的args为啥一直为空
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python使用(options, args) = parser.parse_args() 的args为啥一直为空相关的知识,希望对你有一定的参考价值。
def main():
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-f", "--file", dest="filename",
help="write report to FILE", metavar="FILE")
parser.add_option("-q", "--quiet",
action="store_false", dest="verbose", default=True,
help="don't print status messages to stdout")
(options, args) = parser.parse_args()
print args,options
if __name__ == "__main__":
main()
为什么运行python opt.py --file=outfile -q后,args没有值,options却有值
[] 'verbose': False, 'filename': 'outfile'
你调用的时候加上不是参数的东西就会有 args 了。比如 python opt.py --file=outfile -q abc def ghi追问
那我看有的文档介绍:
if len(args) != 1:
parser.error("incorrect number of arguments")
不就是错误的吗?正常输入正确的参数args是空哎
你别只看字面的意思。要看这个命令/这些参数的具体作用。脱离具体命令来做参数解析,毫无意义。
args有好多个定义。有的是直接 args = sys.argv[1:],有的是optparse/argparse解析出来的。想清楚你想要支持什么样的参数,想要解析成什么样子,然后再去解析。不要云里雾里的。
一个合理的程序args为空也很正常的。
positional argument 才会放进args里面。
option都是放在 options里面的。另外 optparse 已经不建议使用,新的代替是 argparse.
你调用的时候加上不是参数的东西就会有 args 了。比如 python opt.py --file=outfile -q abc def ghi
MAIN 函数中args参数
args[] 在命令行运行时候输入的参数,因为参数可以为多个,所以要用 数组来存,比如dos的copy命令:
copy c:\\*.* d:\\*.*
这就是两个参数c:\\*.*和d:\\*.*
以上是关于python使用(options, args) = parser.parse_args() 的args为啥一直为空的主要内容,如果未能解决你的问题,请参考以下文章