论证的位置将是固定的

时间:2015-10-02 10:47:25

标签: python

如果我运行我的程序,请在命令行中

python parse.py config=abc.txt factor_date=20151001 like this

我希望论证的位置是固定的。这意味着如果我传递下面的参数

python parse.py factor_date=20151001 config=abc.txt

必须显示错误。

import sys

config_file=sys.argv[1]
factor_date = sys.argv[2]

argstring=""+config_file+" "+factor_date+""

arg_list = argstring.split(' ')
input={}

for arg in arg_list:
    #x=arg.split("--")
    key,val=arg.split("=")[0],arg.split("=")[1]
    if key == "config":
        input[key]=val
    if key =="factor_date":
        input[key]=val
print input

2 个答案:

答案 0 :(得分:0)

你应该看看argparse。您的用例是针对位置参数。如果指定参数的名称(带有argparse的可选参数),则强制执行特定订单没有意义。

但是,当使用位置参数时,可以使用worng参数调用程序,您必须自己检查用户提供的值。但是,你可以强制一个类型,它会自动转换字符串,在你描述的情况下可以解决问题。

答案 1 :(得分:0)

您可以查看click。它让您可以毫不费力地创建命令行界面。它基于使用装饰器。