python - 如何在 Python 3.7+ 中使用 argparse 传递日期?

标签 python python-3.x datetime argparse

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/

相关文章:

java - 如何使用 java.time 将带有可选时间的日期时间输入字符串转换为 UNIX 时间

python - 在keras中表示多个输入的简单方法?

python - 根据条件更改窗口 pyspark 数据框中的所有行值

python - 代码大战。整数 : Recreation One. 我有错误 "Execution Timed Out"

python-3.x - 使用 aiohttp 获取 cookie

python - 如何对二进制字符串列表进行排序

java - 我怎样才能在java中获得这个日期时间格式

需要 Python TKinter 线程帮助

Python 需求与 PyPi 冲突

javascript - 从某个日期到现在经过的天数