如果未提供命令行参数,则检测并打印

2024-09-27 09:27:27 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的程序:

from sys import argv

script, arg1 = argv

def program(usr_input, arg1):
    if(usr_input == arg1):
        print "CLI argument and user input are identical"

    else:
        print "CLI argument and user input aren't identical"

if arg1 != "":
    usr_input = raw_input("enter something: ")
    program(usr_input, arg1)

else:
    print "You have not entered a CLI argument at all."

我得到:

Traceback (most recent call last):
  File "filename.py", line 3, in <module>
    script, arg1 = argv
ValueError: need more than 1 value to unpack

如何检测缺少命令行参数并引发错误/异常而不是接收此错误?


Tags: andinputcliifusr错误scriptprogram
3条回答

您可以处理异常:

In [6]: def program(argv):
    try:
        script, argv1 = argv
    except ValueError:
        print("value error handled")
   ...:         

In [7]: program(argv)
value error handled

试试这个:

script = argv[0]
try:
    arg1 = argv[1]
except:
    arg1 = ''

我建议只检查脚本的__main__位置中的程序参数,作为整个应用程序的入口点。

import sys
import os

def program(*args):
    # do whatever
    pass

if __name__ == "__main__":
    try:
        arg1 = sys.argv[1]
    except IndexError:
        print "Usage: " + os.path.basename(__file__) + " <arg1>"
        sys.exit(1)

    # start the program
    program(arg1)

相关问题 更多 >

    热门问题