我编写了一个代码,该代码将从命令提示符运行,并从命令中获取参数。
我尝试了什么。
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.
有点像交互式代码。
答案 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来阅读命令行选项。