在sys

时间:2018-06-15 13:27:03

标签: python python-3.x

我想创建一个只在从命令提示符输入了许多有效参数时运行的程序。但该计划将继续循环,直到""进入了。

例如:

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)

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)

也就是说,退出是比较常规的,并且当用法不正确时,期望用户重新运行命令,并在提示中添加缺少的参数。