gpt4 book ai didi

python - 如何使用 click.prompt 从用户那里获取有效日期?

转载 作者:行者123 更新时间:2023-11-28 22:30:37 26 4
gpt4 key购买 nike

你好,

我实际上正在学习如何使用 click 包中的一些元素,我希望能够通过使用 prompt 命令从用户那里获取有效日期。

我试图查找文档,我在 http://click.pocoo.org/5/prompts/ 下找到了这个:

To manually ask for user input, you can use the prompt() function. By default, it accepts any Unicode string, but you can ask for any other type.

所以我写了这段代码并尝试将类 datetime.datetime 作为所需的输入类型传递:

import datetime

value = click.prompt("Enter a date", type=datetime.datetime)

当我执行此代码时出现提示,但在我插入有效日期并按回车键后我收到此错误消息:

Traceback (most recent call last): File "", line 1, in File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/click/termui.py", line 98, in prompt result = value_proc(value) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/click/types.py", line 38, in call return self.convert(value, param, ctx) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/click/types.py", line 87, in convert return self.func(value) TypeError: an integer is required (got type str)

拜托,你能告诉我我在这段代码中做错了什么吗?

基本上我想通过编写类似这段(部分虚构的)代码来获得正确格式化的日期值:

import datetime

value = click.prompt("Enter a date",
type=datetime.datetime,
format="%d/%m/%Y",
default=datetime.datetime.now())

非常感谢

最佳答案

现在看来 Click 不处理日期,但它可能在将来会发生变化。

相反,您可以传递带有 value_proc 参数的解析器。我使用过 dateutil,但如果您愿意,可以将其更改为 datetime:

from dateutil import parser
import click

def parse(value):
try:
date = parser.parse(value)
except:
raise click.BadParameter("Couldn't understand date.", param=value)
return value

value = click.prompt("Enter a date", value_proc=parse)

关于python - 如何使用 click.prompt 从用户那里获取有效日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42078103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com