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
我假设收到的参数是一个字符串,它不兼容,因为预期的对象是日期。那么,我实际上如何传递日期对象呢?有变通办法吗?
我可以解析一个字符串并将它传递给一个日期对象。但是,我想探索其他直接选项。
最佳答案
您可以使用包装函数,该函数使用 datetime.strptime
以所需格式解析给定的日期字符串:
parser.add_argument("-s", "--start-date", dest="start_date",
default=date.today() - timedelta(days = 1),
type=lambda d: datetime.strptime(d, '%Y%m%d').date(),
help="Date in the format yyyymmdd")
关于python - 如何在 Python 3.7+ 中使用 argparse 传递日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54643620/