从optparser获取命令行争论而不使用argv [x]

时间:2018-04-02 18:33:31

标签: python command-line-interface

所以我试图为脚本添加功能,该脚本采用可变数量的命令行参数,例如:

python -u hi.py ENTRY_METHOD /onefolder/ /twofolder/ a b c d e f

python -u hi.py ENTRY_METHOD /onefolder/ /twofolder/ a b c d

所以argv [s]是这样的:

argv[0] == hi.py
argv[1] == ENTRY_METHOD
argv[2] == /onefolder/
argv[3] == /twofolder/
argv[4] == a
argv[5] == b
argv[6] == c
argv[7] == d

我需要使用optparser(我知道,旧的并且已弃用)。

我想这样做:

python -u hi.py ENTRY_METHOD -q /onefolder/ /twofolder/ a b c d

其中-q执行我需要的但不影响argv [s]值(即d将继续等于argv [7]并且因为它是一个可变数字-q wouldn&#39 ;在给定命令的情况下,t计为argv [8]:

python -u hi.py ENTRY_METHOD /onefolder/ /twofolder/ a b c d -q

有没有人建议我如何才能做到这一点?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

您可以重置sys.argv:

argv = list(sys.argv)
argv.remove("-q")
sys.argv = tuple(argv)