【发布时间】:2019-02-12 05:52:35
【问题描述】:
parser.add_argument("-s", "--start-date", dest="start_date",
default=date.today() - timedelta(days = 1),
type=date, help="Date in the format yyyymmdd")
这个方法报错
argument_test.py: error: argument -s/--start-date: invalid date value: 20181215
我假设收到的参数是一个字符串,并且它不兼容,因为预期的对象是日期。那么,我如何实际传递日期对象?有解决办法吗?
我可以解析一个字符串并将它传递给一个日期对象。但是,我想探索其他直接选择。
【问题讨论】:
-
date函数是什么?查看sys.argv以查看shell 传递给您的脚本的内容。这就是解析器必须处理的。首先,我建议只接受一个字符串,并在解析后自己转换为数据。这样您就可以更加关注它是如何完成的,而无需假设 argparse 可能会或可能不会做什么。 -
type参数应该是一个函数。它不是期望对象类型的名称。它只是在做date("20181215")。 -
@hpaulji 这是否意味着,每次我指定时间时,我基本上都是在调用构造函数?
标签: python python-3.x datetime argparse