我试图将一些命令行参数发送给我写过的程序。我修改了一些我在教程中找到的代码。但是,只有我发送缝隙的最后一个参数才能通过。例如,如果我输入以下内容:
python test.py -m A
但是,如果我输入:
,则没有任何反应python test.py -s A
它接缝的列表中的最后一个参数...(下面附带的代码)
import sys, getopt
def main(argv):
mina = ""
capsize= ""
matchcharge= ""
steps= ""
try:
opts, args = getopt.getopt(argv,"m:cs:mc:s:",["min=","capsize=","matchcharge=","steps="])
except getopt.GetoptError:
print("argument not recognised")
sys.exit(2)
for opt, arg in opts:
if opt == ("-m", "--min"):
mina = arg
print("1")
elif opt in ("-cs", "--capsize"):
capsize = arg
print("2")
elif opt in ("-mc", "--matchcharge"):
matchcharge = arg
print("3")
elif opt in ("-s", "--steps"):
steps = arg
print("4")
print("mina " + str(min))
print("capsize" + str(capsize))
print("matchcharge" + str(matchcharge))
print("steps " + str(steps))
if __name__ == "__main__":
main(sys.argv[1:])
答案 0 :(得分:3)
在您的代码中
if opt == ("-m", "--min"):
应该是
if opt in ("-m", "--min"):
由于你在其他所有地方都有这种权利,我想这只是在那里被遗忘了。