Python中的交互式系统参数

时间:2016-09-28 06:34:51

标签: python python-2.7 sys

我编写了一个代码,该代码将从命令提示符运行,并从命令中获取参数。

我尝试了什么。

start_date = sys.argv[1]
end_date = sys.argv[2]

end_date2 = datetime.strptime(end_date, "%d %b %Y").date()
start_date2 = datetime.strptime(start_date, "%d %b %Y").date()
--- Do Something ---

我正在运行脚本:

python myscript.py "19 Aug 2016" "19 Sep 2016"

这很顺利。但无论我在脚本中做什么都需要一个条件: - start_date2 > end_date2

所以如果不满足上述条件,我使用if语句来限制这个和exit()代码。

我的问题: -

如果不满足上述条件,是否可以重置参数?

类似的东西:

if start_date2 < end_date2 :
    re enter the arguments from the command prompt 
    without stopping the code and take the new arguments and ignore the  wrong ones.

有点像交互式代码。

1 个答案:

答案 0 :(得分:0)

是的,有可能。只需在检测到日期错误后使用print / raw_input并询问用户新日期,覆盖旧日期并再次查看日期。

例如(伪代码):

start_date = sys.argv[1]
while start_date.isWrong():
    print "start_date is wrong, gimme new one and press enter: "
    start_date = parse_from_string(raw_input())

无论如何,您应该尝试argparse来阅读命令行选项。