python 超简单的命令行文本菜单,没有外部依赖

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 超简单的命令行文本菜单,没有外部依赖相关的知识,希望对你有一定的参考价值。

import sys

if sys.version_info.major < 3:
    input = raw_input


class Menu:

    def __init__(self, items, title=None, prompt=None, exit_on_quit=True):
        self.items = items
        self.title = title
        self.prompt = prompt
        self.exit = exit_on_quit

    def process_response(self, response):
        try:
            item_num = int(response)
            if item_num < 1 or item_num > len(self.items):
                raise ValueError
            return item_num, self.items[item_num - 1]
        except ValueError:
            print('Invalid Response. Renenter...')

    def select(self):
        item_num = None
        while item_num is None:
            if self.title:
                print("\n{}".format(self.title))
            for item_num, item in enumerate(self.items):
                print('{:2}. {}'.format(item_num + 1, item))
            if self.prompt is None:
                self.prompt = 'Select option (1-{})? '.format(len(self.items))
            response = input(self.prompt)
            if self.exit and response.lower() == 'q':
                sys.exit(0)
            item_num, item = self.process_response(response)
        return item_num, item

if __name__ == '__main__':
    items = ['apple', 'banana', 'cantalope']
    item = Menu(items, quit=True).select()
    print(item)

以上是关于python 超简单的命令行文本菜单,没有外部依赖的主要内容,如果未能解决你的问题,请参考以下文章

sed行文本处理工具

将命令行文本输出到 Javafx Textarea

VI命令行文本编辑器

技巧115 自动补全整行文本

cmd输入python没有反应——解决方法(简单好用)

宝塔面板LNMP从零开始配置NextCloud超详细教程,同时配置外部七牛云存储