python脚本实现linux菜单选择
时间: 2023-04-10 10:02:57 浏览: 71
可以使用Python的内置模块curses来实现Linux菜单选择。以下是一个简单的示例代码:
```python
import curses
# 定义菜单选项
menu = ['Option 1', 'Option 2', 'Option 3', 'Option 4']
# 初始化curses
stdscr = curses.initscr()
curses.cbreak()
curses.noecho()
# 获取屏幕尺寸
height, width = stdscr.getmaxyx()
# 创建菜单窗口
menu_win = curses.newwin(height-2, width-2, 1, 1)
menu_win.box()
menu_win.refresh()
# 显示菜单选项
for i, item in enumerate(menu):
menu_win.addstr(i+1, 2, item)
# 高亮第一个选项
menu_win.attron(curses.A_REVERSE)
menu_win.addstr(1, 2, menu[0])
menu_win.attroff(curses.A_REVERSE)
menu_win.refresh()
# 处理用户输入
pos = 0
while True:
key = stdscr.getch()
if key == curses.KEY_UP and pos > 0:
menu_win.addstr(pos+1, 2, menu[pos])
pos -= 1
menu_win.attron(curses.A_REVERSE)
menu_win.addstr(pos+1, 2, menu[pos])
menu_win.attroff(curses.A_REVERSE)
elif key == curses.KEY_DOWN and pos < len(menu)-1:
menu_win.addstr(pos+1, 2, menu[pos])
pos += 1
menu_win.attron(curses.A_REVERSE)
menu_win.addstr(pos+1, 2, menu[pos])
menu_win.attroff(curses.A_REVERSE)
elif key == curses.KEY_ENTER or key in [10, 13]:
break
# 清理curses
curses.nocbreak()
curses.echo()
curses.endwin()
# 打印选择结果
print('You chose:', menu[pos])
```
这个脚本使用curses创建了一个菜单窗口,并允许用户使用上下箭头选择菜单选项。选择结果将在终端中打印出来。