点击自定义选项提示功能
click custom option prompt function
我注意到使用点击的提示接受带有尾随空格的输入
ftp_server = click.prompt("FTP Server")
有没有办法使用像这样的自定义 return 函数来拒绝尾随空格?
def custom_prompt(value):
if value.strip():
return True
else:
return False
ftp_server = click.prompt("FTP Server", custom_prompt)
我已经用过这个了:
while not ftp_server.strip():
ftp_server = click.prompt("FTP Server")
但我正在寻找更好的方法,因为我不想每次使用 prompt 时都使用 while 循环。
要拒绝无效的用户输入,您可以使用 value_proc
参数到 click.prompt
。拒绝带有尾随空格的输入的验证器可能如下所示:
提示验证器
import click
def validate_no_trailing_space(value):
if value != value.rstrip():
raise click.UsageError("Trailing space is invalid!")
return value
ftp_server = click.prompt("FTP Server",
value_proc=validate_no_trailing_space)
Trim 空格
您还可以考虑一个验证器,它会修剪前导和尾随空格但拒绝名称中的空格:
def validate_no_internal_space(value):
value = value.strip()
if ' ' in value:
raise click.UsageError("Spaces are not valid here!")
return value
我注意到使用点击的提示接受带有尾随空格的输入
ftp_server = click.prompt("FTP Server")
有没有办法使用像这样的自定义 return 函数来拒绝尾随空格?
def custom_prompt(value):
if value.strip():
return True
else:
return False
ftp_server = click.prompt("FTP Server", custom_prompt)
我已经用过这个了:
while not ftp_server.strip():
ftp_server = click.prompt("FTP Server")
但我正在寻找更好的方法,因为我不想每次使用 prompt 时都使用 while 循环。
要拒绝无效的用户输入,您可以使用 value_proc
参数到 click.prompt
。拒绝带有尾随空格的输入的验证器可能如下所示:
提示验证器
import click
def validate_no_trailing_space(value):
if value != value.rstrip():
raise click.UsageError("Trailing space is invalid!")
return value
ftp_server = click.prompt("FTP Server",
value_proc=validate_no_trailing_space)
Trim 空格
您还可以考虑一个验证器,它会修剪前导和尾随空格但拒绝名称中的空格:
def validate_no_internal_space(value):
value = value.strip()
if ' ' in value:
raise click.UsageError("Spaces are not valid here!")
return value