我想创建一个只在从命令提示符输入了许多有效参数时运行的程序。但该计划将继续循环,直到""进入了。
例如:
C:\User\ABC>python example.py "argv1" "argv2"
-> do something, then ask to keep prompting for more arguments in command prompt
C:\User\ABC>python example.py
-> no argument, the program will ask for arguments. If "" is entered, the program will exit
C:\User\ABC>python example.py "argv1" "argv2" "argv3"
-> too many arguments, error code display
sys.exit(1)
答案 0 :(得分:0)
更接近原始请求的内容可能是:
while True:
extra_arg = raw_input("Please enter an additional argument, or press enter when done")
if extra_arg == "":
break
sys.argv.append(extra_arg)
...之后您会定期进行len(sys.argv)
处理。
两参数案例的简单方法可能更像:
if len(sys.argv) > 1:
arg1 = sys.argv[1]
else:
arg1 = raw_input("Please enter a value for argument 1:")
if len(sys.argv) > 2:
arg2 = sys.argv[2]
else:
arg2 = raw_input("Please enter a value for argument 2:")
if len(sys.argv) > 3:
sys.stderr.write("ERROR: Too many arguments\n")
sys.exit(1)
也就是说,退出是比较常规的,并且当用法不正确时,期望用户重新运行命令,并在提示中添加缺少的参数。