使用inqui验证输入

2024-06-16 11:42:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在检查输入的长度是否有效,如下所示:

questions = [
    inquirer.Text('b_file', message='.GBK File',
                  validate=lambda file: len(str(file))),
    inquirer.Text('e_file', message='.XLS File',
                  validate=lambda file: len(str(file)))]

但没用。是说这不是一个有效的输入:

^{pr2}$

Tags: lambdatextmessagelenxlsvalidatefilequestions
1条回答
网友
1楼 · 发布于 2024-06-16 11:42:51

用于validate的函数必须采用两个参数;第一个参数是包含先前给出答案的字典,第二个参数是当前答案。在

code to handle validation捕获所有异常并将其转换为验证错误,因此仅使用一个参数的lambda总是会导致验证失败。在

让lambda也接受答案字典;您可以忽略给定的值:

questions = [
    inquirer.Text('b_file', message='.GBK File',
                  validate=lambda answers, file: len(str(file))),
    inquirer.Text('e_file', message='.XLS File',
                  validate=lambda answers, file: len(str(file)))]

有了这个变化,问题就起作用了:

^{pr2}$

相关问题 更多 >