批处理选择命令的 Python 等效项

Posted

技术标签:

【中文标题】批处理选择命令的 Python 等效项【英文标题】:Python equivalent for batch Choice command 【发布时间】:2013-09-12 13:05:14 【问题描述】:

我正在用 python 做一个小项目,经过一些工作后,我想知道是否有一种方法可以在 python 3 中输入数据,这有点类似于批处理的选择命令。几乎只接受一键输入,然后结束输入提示。

例如:

Choice(['Y', 'N'], "Yes or No? ")

用户可以按“Y”或“N”,程序将继续运行。

我做了一些简短的冲浪,但没有找到任何我可以使用的东西。

奖金:

如果这个“选择”命令可以排除多个字符,那将更加有用。 几乎是input,但限制了他们可以输入的字符数,然后立即继续。事实证明,后者很难。

提前致谢,莫娜

【问题讨论】:

【参考方案1】:

没有内置的,但你可以这样做:

def choice(options, prompt):
    while True:
        output = input(prompt)    # Use raw_input(prompt) for Python 2.x
        if output in options:
            return output
        else:
            print("Bad option. Options: " + ", ".join(options))

这将允许用户在命令行中输入任意字符串(任意长度),并且一旦用户点击enter 就会继续。不幸的是,我知道没有简单的方法可以在设定的字符数后自动停止。

但是,this post 确实讨论了从命令行获取单个字符的方法。你或许可以把它改编成上面的函数,让它在一定数量的字符后自动继续,而不用等待按下enter键。

【讨论】:

好的,我会进一步研究这个。谢谢

以上是关于批处理选择命令的 Python 等效项的主要内容,如果未能解决你的问题,请参考以下文章

给定 wget 命令的 Python 等效项

选择案例的 Python 等效项 (CDec(variable)

如何制作带选项的批处理。例如:选择y会执行一项命令,选择n会执行另一项命令

Linux Shell 中的 ` +` 的 Windows 等效项是啥?

具有用户名和 api 令牌的 CURL 的 Python 等效项

Windows 挂钩的 Linux 等效项