网站制作公司美股上市,自己做网站系统教程,莱芜最新话题,淘宝做代码的网站#x1f525;作者简介#xff1a; 一个平凡而乐于分享的小比特#xff0c;中南民族大学通信工程专业研究生#xff0c;研究方向无线联邦学习 #x1f3ac;擅长领域#xff1a;驱动开发#xff0c;嵌入式软件开发#xff0c;BSP开发 ❄️作者主页#xff1a;一个平凡而…作者简介 一个平凡而乐于分享的小比特中南民族大学通信工程专业研究生研究方向无线联邦学习擅长领域驱动开发嵌入式软件开发BSP开发❄️作者主页一个平凡而乐于分享的小比特的个人主页✨收录专栏Python本专栏为记录项目中用到常用python库欢迎大家点赞 收藏 ⭐ 加关注哦Colorama 使用教程Colorama 是一个 Python 库用于在终端中输出彩色文本和设置文本样式。它支持跨平台Windows/Linux/macOS的彩色终端输出。一、安装 Coloramapipinstallcolorama二、基本使用importcoloramafromcoloramaimportFore,Back,Style# 初始化 ColoramaWindows 必需其他平台可选colorama.init()print(f{Fore.RED}这是红色文本{Style.RESET_ALL})print(f{Fore.GREEN}这是绿色文本{Style.RESET_ALL})print(f{Fore.BLUE}这是蓝色文本{Style.RESET_ALL})# 恢复默认设置在程序结束时调用colorama.deinit()三、颜色常量Colorama 提供了以下前景色文本颜色常量fromcoloramaimportFore# 基本颜色print(f{Fore.BLACK}黑色文本)print(f{Fore.RED}红色文本)print(f{Fore.GREEN}绿色文本)print(f{Fore.YELLOW}黄色文本)print(f{Fore.BLUE}蓝色文本)print(f{Fore.MAGENTA}洋红色文本)print(f{Fore.CYAN}青色文本)print(f{Fore.WHITE}白色文本)# 亮色版本print(f{Fore.LIGHTBLACK_EX}亮黑色文本)print(f{Fore.LIGHTRED_EX}亮红色文本)print(f{Fore.LIGHTGREEN_EX}亮绿色文本)print(f{Fore.LIGHTYELLOW_EX}亮黄色文本)print(f{Fore.LIGHTBLUE_EX}亮蓝色文本)print(f{Fore.LIGHTMAGENTA_EX}亮洋红色文本)print(f{Fore.LIGHTCYAN_EX}亮青色文本)print(f{Fore.LIGHTWHITE_EX}亮白色文本)四、样式常量fromcoloramaimportStyleprint(f{Style.DIM}暗淡文本{Style.RESET_ALL})print(f{Style.NORMAL}正常文本{Style.RESET_ALL})print(f{Style.BRIGHT}明亮文本{Style.RESET_ALL})# 重置所有样式print(f{Style.RESET_ALL}已重置样式)五、背景颜色fromcoloramaimportBack# 基本背景色print(f{Back.BLACK}黑色背景{Back.RESET})print(f{Back.RED}红色背景{Back.RESET})print(f{Back.GREEN}绿色背景{Back.RESET})print(f{Back.YELLOW}黄色背景{Back.RESET})print(f{Back.BLUE}蓝色背景{Back.RESET})print(f{Back.MAGENTA}洋红色背景{Back.RESET})print(f{Back.CYAN}青色背景{Back.RESET})print(f{Back.WHITE}白色背景{Back.RESET})# 亮色背景版本print(f{Back.LIGHTBLACK_EX}亮黑色背景{Back.RESET})print(f{Back.LIGHTRED_EX}亮红色背景{Back.RESET})print(f{Back.LIGHTGREEN_EX}亮绿色背景{Back.RESET})print(f{Back.LIGHTYELLOW_EX}亮黄色背景{Back.RESET})print(f{Back.LIGHTBLUE_EX}亮蓝色背景{Back.RESET})print(f{Back.LIGHTMAGENTA_EX}亮洋红色背景{Back.RESET})print(f{Back.LIGHTCYAN_EX}亮青色背景{Back.RESET})print(f{Back.LIGHTWHITE_EX}亮白色背景{Back.RESET})# 组合前景色和背景色print(f{Fore.WHITE}{Back.RED}白字红底文本{Style.RESET_ALL})六、重置样式有三种方式重置样式fromcoloramaimportFore,Back,Style# 方法1这会重置前景色、背景色和所有样式print(f{Fore.RED}{Back.GREEN}{Style.BRIGHT}彩色文本{Style.RESET_ALL}正常文本)# 方法2分别重置print(f{Fore.RED}红色文本{Fore.RESET}正常文本)print(f{Back.GREEN}绿色背景{Back.RESET}正常背景)# 方法3重置样式到正常不重置颜色print(f{Style.BRIGHT}加粗文本{Style.NORMAL}正常样式)七、初始化与重置自动重置模式默认importcoloramafromcoloramaimportFore# 自动重置模式在每次打印后自动重置样式colorama.init(autoresetTrue)print(f{Fore.RED}红色文本)# 自动重置下一行不会受影响print(正常文本)colorama.deinit()手动重置模式importcoloramafromcoloramaimportFore# 手动重置模式需要显式重置样式colorama.init(autoresetFalse)print(f{Fore.RED}红色文本)# 不会自动重置print(这行也会是红色文本)# 仍然保持红色print(f{Fore.RESET})# 手动重置print(现在正常了)colorama.deinit()禁用颜色importcoloramafromcoloramaimportFore# stripTrue 会移除所有颜色代码适用于重定向到文件时colorama.init(stripTrue)print(f{Fore.RED}这行不会有颜色代码被移除)colorama.deinit()八、高级用法1. 使用 with 语句fromcoloramaimportinit,deinitwithinit():# 在这里使用 Coloramaprint(f{Fore.GREEN}在 with 块中使用)# 退出 with 块后自动调用 deinit()2. 创建彩色输出函数fromcoloramaimportFore,Styledefprint_success(message):print(f{Fore.GREEN}✓{message}{Style.RESET_ALL})defprint_error(message):print(f{Fore.RED}✗{message}{Style.RESET_ALL})defprint_warning(message):print(f{Fore.YELLOW}⚠{message}{Style.RESET_ALL})defprint_info(message):print(f{Fore.CYAN}ℹ{message}{Style.RESET_ALL})# 使用自定义函数print_success(操作成功完成)print_error(发生了一个错误)print_warning(这是一个警告)print_info(这是一条信息)3. 进度指示器importtimefromcoloramaimportFore,Styledefprogress_bar(progress,total,width50):percentprogress/total filledint(width*percent)bar█*filled-*(width-filled)colorFore.GREENifpercent0.7elseFore.YELLOWifpercent0.3elseFore.REDprint(f\r{color}[{bar}]{percent:.1%}{Style.RESET_ALL},end,flushTrue)# 模拟进度total100foriinrange(total1):progress_bar(i,total)time.sleep(0.05)print()# 换行九、实用示例示例1彩色日志系统importloggingfromcoloramaimportFore,Styleimportcolorama colorama.init()classColoredFormatter(logging.Formatter):自定义彩色日志格式化器COLORS{DEBUG:Fore.CYAN,INFO:Fore.GREEN,WARNING:Fore.YELLOW,ERROR:Fore.RED,CRITICAL:Fore.REDStyle.BRIGHT,}defformat(self,record):log_colorself.COLORS.get(record.levelname,)record.levelnamef{log_color}{record.levelname}{Style.RESET_ALL}record.msgf{log_color}{record.msg}{Style.RESET_ALL}returnsuper().format(record)# 设置日志loggerlogging.getLogger(__name__)logger.setLevel(logging.DEBUG)handlerlogging.StreamHandler()formatterColoredFormatter(%(levelname)s: %(message)s)handler.setFormatter(formatter)logger.addHandler(handler)# 测试日志logger.debug(调试信息)logger.info(普通信息)logger.warning(警告信息)logger.error(错误信息)logger.critical(严重错误)示例2彩色表格输出fromcoloramaimportFore,Back,Styledefprint_table(data,headersNone):打印彩色表格ifheaders:data[headers]data# 计算每列的最大宽度col_widths[]forcolinrange(len(data[0])):col_widthmax(len(str(row[col]))forrowindata)col_widths.append(col_width)# 打印表头如果有ifheaders:header_row | .join(f{Fore.YELLOW}{Style.BRIGHT}{str(item):{col_widths[i]}}{Style.RESET_ALL}fori,iteminenumerate(headers))print(header_row)print(-*(sum(col_widths)3*(len(col_widths)-1)))# 打印数据行forrowindata[len(headers)ifheaderselse0:]:colored_row[]fori,iteminenumerate(row):colorFore.GREENifi%20elseFore.CYAN colored_row.append(f{color}{str(item):{col_widths[i]}}{Style.RESET_ALL})print( | .join(colored_row))# 示例数据headers[名称,价格,库存,状态]data[[苹果,5.99,100,有货],[香蕉,3.49,50,有货],[橙子,4.99,0,缺货],[葡萄,7.99,25,有货],]print_table(data,headers)示例3命令行菜单fromcoloramaimportFore,Styleimportsysdefprint_menu(options,selected_index0):打印彩色菜单fori,optioninenumerate(options):ifiselected_index:print(f{Fore.GREEN}{Style.BRIGHT}{option}{Style.RESET_ALL})else:print(f{option})definteractive_menu(options):交互式菜单选择selected0whileTrue:# 清屏跨平台print(\033c,end)print(f{Fore.CYAN}{Style.BRIGHT}请选择操作{Style.RESET_ALL})print_menu(options,selected)# 获取用户输入keyinput(\n使用 ↑ ↓ 选择回车确认: )ifkey\x1b[A:# 上箭头selected(selected-1)%len(options)elifkey\x1b[B:# 下箭头selected(selected1)%len(options)elifkey:returnselected# 菜单选项menu_options[1. 开始新游戏,2. 加载游戏,3. 设置,4. 关于,5. 退出]# 运行菜单注意箭头键检测在某些终端可能需要特殊处理# 这里简化为演示概念fori,optioninenumerate(menu_options):ifi1:# 模拟选中第二项print(f{Fore.GREEN}{Style.BRIGHT}{option}{Style.RESET_ALL})else:print(f{option})注意事项Windows 系统必须调用colorama.init()来启用 ANSI 转义序列支持自动重置使用autoresetTrue可以避免颜色泄漏到后续输出文件重定向当输出被重定向到文件时使用stripTrue移除颜色代码性能频繁的颜色切换可能影响性能在大量输出时注意兼容性不是所有终端都支持所有颜色尽量使用基本颜色确保兼容性嵌套使用颜色代码可以嵌套但要注意正确的重置顺序总结Colorama 是一个简单而强大的库可以为你的命令行程序添加彩色输出。通过合理使用前景色、背景色和样式你可以创建出更加友好和直观的命令行界面。记得在 Windows 上正确初始化和重置并考虑使用autoresetTrue来简化代码管理。