[英]python library for user input
我正在用 python 实现一个小的命令行工具,它需要问用户几个问题。 我用
raw_input('Are you male or female?')
每时每刻。 现在我希望能够处理愚蠢的用户(或者那些懒得阅读/记住文档的用户),所以我需要检查答案是否有意义。
gender = ''
while gender not in ['male', 'female']:
gender = raw_input('Are you male or female?')
我想知道是否存在像 argparse 这样的东西可以自动解决这个问题,比如
import inputparse
gender = inputparse.get_input(prompt='Are you male or female?', type=str, possible_input=['male', 'female'])
并会负责自动检查等?
这个问题很老了,但我今天正在研究它。 Al Swigert 在Automate the Boring Stuff With Python 中推荐了库pyinputplus
我不知道这样的库是否存在,但是您可以编写这样的高阶函数:
def check_input(predicate, msg, error_string="Illegal Input"):
while True:
result = input(msg).strip()
if predicate(result):
return result
print(error_string)
result = check_input(lambda x: x in ['male', 'female'],
'Are you male or female? ')
print(result)
输出:
Are you male or female? foo Illegal Input Are you male or female? bar Illegal Input Are you male or female? Male Illegal Input Are you male or female? male male
我在这个线程中偶然发现了一个类似的库,我对没有一个库感到非常失望,所以我写了一个。 在接下来的几天里,我会在这方面做很多工作,因为我需要更多的功能来写我正在写的东西。
又要死灵了……
如果您需要一个简单的帮助库来解决问题,请查看click 。 它的主要重点是命令行选项,但我认为它非常适合您的用例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.