安装
1pip install simple_term_menu
⚠️ 不支持windows 这个菜单库使用非常简单,只需要传入一个列表,就可以生成一个菜单,返回值就是选择的菜单项的索引。
- 支持
J
K
/⬆️ ⬇️ 键移动 - 支持
/
斜杠搜索 - 支持快捷键(传入的 string 如
[q] 退出
,q 就变成快捷键了) - 好看!
- 还有更多功能,我没有仔细研究,参考>这里<
封装成函数,方便调用
1from simple_term_menu import TerminalMenu
2def menu(choices:list):
3 terminal_menu = TerminalMenu(choices,title="扫描结果转换XML工具 v1.0 (230208)\n---",show_search_hint=True)
4 index = terminal_menu.show()
5
6 print("执行", choices[index])
7 if choices[index] == "[h] 文档":
8 import webbrowser
9 webbrowser.open('http://example.com')
10 return 0
11 if choices[index] == "[q] 退出":
12 exit()
13 return index + 1 # 返回结果,从1开始
main 函数调用
1if __name__ == '__main__':
2 while True:
3 # 获取功能列表,显示菜单
4 choices_str = open('menu.md', 'r', encoding='utf-8').read()
5 choices =choices_str.splitlines()
6 choice_index = menu(choices)
其实一开始选择用md是因为写序号的话可以自动排序,但是加了序号和快捷键之后,就不美观了,所以把序号删除了。
加载菜单 menu.md
1长亭xray(主机+应用) html 1->1
2长亭xray(主机+应用) html 多->1
3绿盟(主机) <ip>.html 1->1
4绿盟(主机) <ip>.html 多->1
5安恒新版 (应用) html 1->1
6Nessus csv(utf-8) 1->1
7Nessus csv(gb18030) 1->1
8[h] 文档
9[q] 退出
效果图:
对了这个东西还有个坑的地方,在pycharm运行的时候需要设置一下才能正常使用(要开启模拟终端):