Python 如何使用click.prompt从用户处获取有效日期?
你好, 实际上,我正在学习如何使用click包中的一些元素,我希望能够使用Python 如何使用click.prompt从用户处获取有效日期?,python,python-click,Python,Python Click,你好, 实际上,我正在学习如何使用click包中的一些元素,我希望能够使用提示符命令从用户那里获取有效日期 我试图查找文档,我在下面找到了: 要手动请求用户输入,可以使用prompt()函数。默认情况下,它接受任何Unicode字符串,但您可以要求任何其他类型 因此,我编写了这段代码,并尝试将datetime.datetime类作为所需的输入类型传递: import datetime value = click.prompt("Enter a date", type=datetime.date
提示符
命令从用户那里获取有效日期
我试图查找文档,我在下面找到了:
要手动请求用户输入,可以使用prompt()函数。默认情况下,它接受任何Unicode字符串,但您可以要求任何其他类型
因此,我编写了这段代码,并尝试将datetime.datetime类作为所需的输入类型传递:
import datetime
value = click.prompt("Enter a date", type=datetime.datetime)
执行此代码时会出现提示,但在插入有效日期并按enter键后,会收到以下错误消息:
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/click/termui.py”,第98行,在提示符中
结果=值\过程(值)
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/click/types.py”,第38行,调用
返回self.convert(值、参数、ctx)
文件“/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/click/types.py”,第87行,在convert中
返回self.func(值)
TypeError:需要一个整数(获取类型str)
拜托,你能告诉我我在这个代码中做错了什么吗
基本上,我希望通过编写类似以下(部分虚构)代码的内容来正确格式化日期值:
非常感谢现在看来,Click并不能处理日期,但将来可能会有所改变 相反,您可以使用
value\u 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)
非常感谢你
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)