Python rhq-menu 包完整使用指南
rhq-menu是轻量级、纯Python实现的交互式命令行菜单工具包,专为简化终端交互式菜单开发设计,无需依赖复杂GUI库,仅通过终端即可实现单选、多选、导航菜单、嵌套菜单等功能,适配Windows、macOS、Linux全平台,是脚本工具、CLI程序、自动化脚本交互的首选库。
一、核心功能
- 基础单选菜单:终端单选选择,支持上下箭头导航、回车确认
- 多选菜单:支持空格勾选、全选/反选,返回多选结果列表
- 嵌套/层级菜单:支持子菜单、多级导航,适合复杂功能分类
- 自定义样式:可修改选中色、提示文字、光标符号、菜单标题
- 默认选中:支持预设默认选项,提升操作效率
- 纯终端无依赖:无需安装额外系统库,轻量高效
- 快速返回值:选择后直接返回选项文本/索引,便于业务逻辑处理
二、安装方法
1. 标准pip安装(推荐)
pipinstallrhq-menu2. 国内镜像加速安装
pipinstallrhq-menu-ihttps://pypi.tuna.tsinghua.edu.cn/simple3. 验证安装
执行以下命令无报错即安装成功:
importrhq_menuprint(rhq_menu.__version__)三、核心语法与全参数解析
rhq-menu核心提供3个核心函数,覆盖绝大多数使用场景:
rhq_menu.menu():单选菜单(最常用)rhq_menu.checkbox():多选菜单rhq_menu.submenu():嵌套子菜单
1. 单选菜单menu()完整语法
rhq_menu.menu(options:list,# 必选:菜单选项列表,元素为字符串title:str=None,# 可选:菜单标题,默认无标题prompt:str="请选择: ",# 可选:底部提示文字default:int=0,# 可选:默认选中项的索引,默认0(第一个)color:str="green",# 可选:选中项颜色,支持red/green/blue/yellowcursor:str=">",# 可选:选中光标符号return_index:bool=False# 可选:True返回索引,False返回选项文本)2. 多选菜单checkbox()完整语法
rhq_menu.checkbox(options:list,# 必选:选项列表title:str=None,# 可选:标题prompt:str="请选择(空格勾选,回车确认): ",# 提示文字checked_color:str="green",# 勾选颜色cursor:str=">",# 光标符号return_index:bool=False# True返回索引列表,False返回文本列表)3. 嵌套菜单submenu()完整语法
rhq_menu.submenu(menu_data:dict,# 必选:嵌套菜单字典(key=标题,value=子选项)title:str="主菜单",# 主菜单标题prompt:str="请选择: ")四、8个实际应用案例(可直接运行)
案例1:基础单选菜单(工具启动选择)
场景:自动化脚本启动选项,选择执行功能
importrhq_menu# 定义选项options=["数据备份","数据恢复","系统清理","退出程序"]# 调用单选菜单result=rhq_menu.menu(options,title="=== 系统工具集 ===",color="blue")# 业务逻辑处理print(f"\n你选择了:{result}")ifresult=="退出程序":print("程序已退出")案例2:带默认选中的单选菜单
场景:常用选项默认选中,减少操作步骤
importrhq_menu options=["Python","Java","C++","JavaScript"]# 默认选中第3个选项(索引2)C++result=rhq_menu.menu(options,title="选择编程语言",default=2,prompt="请确认你的选择: ")print(f"选中语言:{result}")案例3:多选菜单(文件批量选择)
场景:批量选择文件、批量执行任务
importrhq_menu files=["报告.docx","数据.xlsx","图片.png","日志.log"]# 多选菜单selected=rhq_menu.checkbox(files,title="=== 批量选择文件 ===",checked_color="yellow")print(f"\n选中的文件:{selected}")print(f"共选择{len(selected)}个文件")案例4:返回索引的菜单(精准逻辑控制)
场景:通过索引判断业务,避免文本匹配错误
importrhq_menu actions=["查询","新增","修改","删除"]# return_index=True 返回选中项索引index=rhq_menu.menu(actions,return_index=True,title="数据操作")ifindex==0:print("执行查询操作")elifindex==3:print("执行删除操作")案例5:嵌套层级菜单(多级功能导航)
场景:复杂工具、管理系统的多级菜单
importrhq_menu# 定义嵌套菜单字典menu_config={"用户管理":["添加用户","删除用户","修改权限"],"系统设置":["网络配置","存储配置","安全设置"],"日志查看":["运行日志","错误日志","登录日志"]}# 调用嵌套菜单result=rhq_menu.submenu(menu_config)print(f"\n最终选择:{result}")案例6:自定义光标与样式(个性化菜单)
场景:定制化CLI工具,提升视觉体验
importrhq_menu options=["开始游戏","游戏设置","关于我们"]# 自定义光标为箭头+颜色result=rhq_menu.menu(options,title="=== 游戏控制台 ===",cursor="→",color="red",prompt="请输入操作: ")print(f"你的操作:{result}")案例7:结合循环的持久化菜单(不退出程序)
场景:常驻运行的脚本菜单,选择后返回主菜单
importrhq_menuwhileTrue:options=["任务1","任务2","任务3","退出"]res=rhq_menu.menu(options,title="=== 常驻任务菜单 ===")ifres=="退出":print("程序退出")breakprint(f"正在执行:{res}...\n")案例8:菜单+文件操作实战(完整工具)
场景:通过菜单选择,执行文件读写操作
importrhq_menudefread_file():withopen("test.txt","r",encoding="utf-8")asf:print("文件内容:",f.read())defwrite_file():content=input("输入写入内容:")withopen("test.txt","w",encoding="utf-8")asf:f.write(content)print("写入成功")# 菜单调用opt=["读取文件","写入文件","退出"]whileTrue:res=rhq_menu.menu(opt,title="文件操作工具")ifres=="读取文件":read_file()elifres=="写入文件":write_file()else:break五、常见错误与解决方案
错误1:ModuleNotFoundError: No module named 'rhq_menu'
- 原因:未安装包 / 安装环境与运行环境不一致
- 解决:
- 重新执行
pip install rhq-menu - 确认使用的Python解释器与pip对应(如conda环境需激活后安装)
- 重新执行
错误2:TypeError: menu() missing 1 required positional argument: 'options'
- 原因:未传入必选参数
options(菜单选项列表) - 解决:必须传递非空列表作为菜单选项,如
menu(["选项1", "选项2"])
错误3:菜单显示乱码(Windows终端)
- 原因:终端编码不支持UTF-8
- 解决:
- Windows终端执行:
chcp 65001 - 或使用VS Code终端、PowerShell运行
- Windows终端执行:
错误4:多选菜单无法勾选 / 回车无响应
- 原因:终端不支持交互式按键(如部分轻量终端)
- 解决:使用系统原生终端(CMD、Terminal),避免IDE内置极简终端
错误5:IndexError: list index out of range
- 原因:
default参数设置的索引超出选项列表长度 - 解决:
default必须 ≥0 且 < 选项总数
六、使用注意事项
- 选项格式要求:
options必须是非空字符串列表,不支持数字、None等类型 - 终端兼容性:仅支持交互式终端,不支持非交互式环境(如后台脚本、CI/CD无终端环境)
- 嵌套菜单限制:
submenu()仅支持二级嵌套(主菜单+子菜单),不支持三级及以上深度 - 颜色支持:仅支持
red/green/blue/yellow4种标准色,无自定义RGB - 返回值规范:
- 单选:返回字符串/单个索引
- 多选:返回列表/索引列表
- 中文支持:完美支持中文选项、标题,无乱码问题(UTF-8环境)
- 版本兼容:支持Python 3.6及以上版本,不兼容Python2
总结
rhq-menu是轻量无依赖的终端交互式菜单库,核心支持单选、多选、嵌套菜单三大能力- 安装仅需
pip install rhq-menu,语法简洁,参数清晰,零基础可上手 - 8个实战案例覆盖工具开发、文件操作、批量选择、常驻脚本等全场景
- 核心避坑点:确保选项为字符串列表、使用交互式终端、
default索引不越界
《动手学PyTorch建模与应用:从深度学习到大模型》是一本从零基础上手深度学习和大模型的PyTorch实战指南。全书共11章,前6章涵盖深度学习基础,包括张量运算、神经网络原理、数据预处理及卷积神经网络等;后5章进阶探讨图像、文本、音频建模技术,并结合Transformer架构解析大语言模型的开发实践。书中通过房价预测、图像分类等案例讲解模型构建方法,每章附有动手练习题,帮助读者巩固实战能力。内容兼顾数学原理与工程实现,适配PyTorch框架最新技术发展趋势。