我有一个想法在 python 中创建一个控制台选择菜单,如下所示:
Choose an option:
> 1. Do something 1 <
2. Do something 2
3. Do something 3
4. Do something 4
Run Code Online (Sandbox Code Playgroud)
如果我按向上箭头键,则没有任何反应。如果我按下一个,小于和大于符号会像这样上下移动:
Choose an option:
1. Do something 1
> 2. Do something 2 <
3. Do something 3
4. Do something 4
Run Code Online (Sandbox Code Playgroud)
但我不知道哪个 Python 3 模块可以帮助我捕捉按键而不是input(),并且不知道如何正确对齐它。
我的对齐解决方案是打印空格(也许?),当按键事件被捕获时,控制台将被清除并再次打印选择菜单而不是更改/修改字符串。
此外,选项将从列表中获取,这意味着此菜单是可扩展的
won*_*ng2 18
pick我为此编写了一个Python模块,它有一个易于使用的api并且支持Windows
from pick import pick
title = 'Please choose your favorite programming language: '
options = ['Java', 'JavaScript', 'Python', 'PHP', 'C++', 'Erlang', 'Haskell']
option, index = pick(options, title, indicator='=>', default_index=2)
Run Code Online (Sandbox Code Playgroud)
您必须检测键盘键。因为这会检测python中的按键?提到的答案,Python 有一个键盘模块。
您可以使用这些命令安装它
pip install keyboard
Run Code Online (Sandbox Code Playgroud)
这是它的工作原理
import keyboard
selected = 1
def show_menu():
global selected
print("\n" * 30)
print("Choose an option:")
for i in range(1, 5):
print("{1} {0}. Do something {0} {2}".format(i, ">" if selected == i else " ", "<" if selected == i else " "))
def up():
global selected
if selected == 1:
return
selected -= 1
show_menu()
def down():
global selected
if selected == 4:
return
selected += 1
show_menu()
show_menu()
keyboard.add_hotkey('up', up)
keyboard.add_hotkey('down', down)
keyboard.wait()
Run Code Online (Sandbox Code Playgroud)
小智 5
上述过程使代码更加混乱,并且需要 root 权限才能在 Linux 上运行。最好的方法是使用查询
pip3 install enquiries
并使用以下代码
import enquiries
options = ['Do Something 1', 'Do Something 2', 'Do Something 3']
choice = enquiries.choose('Choose one of these options: ', options)
print(choice)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12286 次 |
| 最近记录: |