python中的getopt方法不适用于大量参数

python中的getopt方法不适用于大量参数,python,Python,对于以上代码,当我给出命令行参数时: import getopt import sys options, remainder = getopt.getopt(sys.argv[1:], 'a:b:c:d:e:f:g:h', ['aa','bb','cc','dd','ee','ff','gg','hh']) list=[] for opt, arg in options: if opt == '-a': list.append(arg.strip()) if opt

对于以上代码,当我给出命令行参数时:

import getopt
import sys

options, remainder = getopt.getopt(sys.argv[1:], 'a:b:c:d:e:f:g:h', ['aa','bb','cc','dd','ee','ff','gg','hh'])

list=[]  
for opt, arg in options:
   if opt == '-a':
     list.append(arg.strip())
   if opt == '-b':
     list.append(arg.strip())
   if opt == '-c':
     list.append(arg.strip())
   if opt == '-d':
     list.append(arg.strip())
   if opt == '-e':
     list.append(arg.strip())
   if opt == '-f':
     list.append(arg.strip())
   if opt == '-g':
     list.append(arg.strip())
   if opt == '-h':
     list.append(arg.strip())
print(list)
输出:

python mainFile.py -a aa -b bb -c cc -d dd -e ee -f ff -g gg -h hh
鉴于我想要:

['aa', 'bb', 'cc', 'dd', 'ee', 'ff', 'gg','']

我应该做些什么来获得所需的输出

如果有参数选项,则必须添加
,因此使用
h:
而不是
h

['aa', 'bb', 'cc', 'dd', 'ee', 'ff', 'gg', 'hh']

中的
错误,请使用
=
。如果opt-in('-h')
opt-in('-a')
是错误的操作,那么最好使用更高级的命令行解析器,如
argparse

您没有处理
。使用
opt=='-a'
。对不起。但在添加'-h'之后,处理列表显示了额外的空元素。@MoBaShiR,空元素是什么意思?你能详细介绍一下最新情况吗question@MoBaShiR,Daniel已经提供了answernow列表输出为['aa',bb',cc',dd',ee',ff',gg','',而我想要['aa',bb',cc',dd',ee',ff',gg',hh']。请说明我现在犯了什么错误。在getopt.getopt(sys.argv[1:,'a:b:c:d:e:f:g:h:'中还有一个小查询,['aa'、'bb'、'cc'、'dd'、'ee'、'ff'、'gg'、'hh'])如果我们用getopt.getopt(sys.argv[1:]、'a:b:c:d:e:f:g:h:'、['aa='、'bb='、'cc='、'dd='、'ee='、'ff='、'gg='、'hh=')替换它的用法
import getopt
import sys

options, remainder = getopt.getopt(sys.argv[1:], 'a:b:c:d:e:f:g:h:', ['aa','bb','cc','dd','ee','ff','gg','hh'])

list=[]  
for opt, arg in options:    
    if opt == '-a':  
        list.append(arg.strip())  
    if opt == '-b':  
        list.append(arg.strip())  
    if opt == '-c':  
        list.append(arg.strip())  
    if opt == '-d':  
        list.append(arg.strip())  
    if opt == '-e':  
        list.append(arg.strip())  
    if opt == '-f':  
        list.append(arg.strip())  
    if opt == '-g':  
        list.append(arg.strip())  
    if opt == '-h':  
        list.append(arg.strip())
print(list)