Python枚举删除列表的最后一个元素
我正在撰写这篇文章,试图解析一些命令行参数,但我构建的脚本一直在删除最后一个参数 为了简单起见,我复制了如下问题:Python枚举删除列表的最后一个元素,python,python-3.x,Python,Python 3.x,我正在撰写这篇文章,试图解析一些命令行参数,但我构建的脚本一直在删除最后一个参数 为了简单起见,我复制了如下问题: import getopt argv = ["-c", "config", "-o", "hello", "-e", "fu bar", "-q", "this is a query"] opts, args = getopt.getopt(argv, "c:o:e:q", ["cfile=", "ofile=", "entry=", "query="]) for opt, a
import getopt
argv = ["-c", "config", "-o", "hello", "-e", "fu bar", "-q", "this is a query"]
opts, args = getopt.getopt(argv, "c:o:e:q", ["cfile=", "ofile=", "entry=", "query="])
for opt, arg in opts:
print(opt, arg)
以下是我得到的输出:
-c config
-o hello
-e fu bar
-q
哪里出错了?冒号(:
)不是分隔符,它需要跟在每个参数后面,如下所述:
shortopts是脚本要识别的选项字母字符串,其中的选项要求参数后跟冒号(:”
;即Unixgetopt()使用的格式)
因此,您应该将“c:o:e:q”
更改为“c:o:e:q:
您链接到的教程也以同样的方式使用它。现在通常建议切换到argparse
。这与你的问题无关,但这就是为什么这是一条评论。:-)我建议切换到点击。是的,它是一个第三方库,这意味着额外的依赖性,但感觉更自然。