百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python输出有颜色的字符(python输出彩色)

off999 2024-11-01 12:52 21 浏览 0 评论

偶然在网上看到一段代码,可以使Python输出带颜色的文字,后来发现这不是Python特有的,而是终端的特性,其他编程语言也可以使用相同的方法输出彩色文字。

print('\x1b[31mapple')
print('\x1b[34morange')
print('\x1b[32mpear')

后来发现颜色跟代码里面数字有关系,31代表红色,32代表绿色,35代表蓝色,文字颜色范围从30到37,下面是全部数字代表的颜色。

30: 黑
31: 红
32: 绿
33: 黄
34: 蓝
35: 紫
36: 深绿
37: 白色

再后来发现,其实完整代码应该是这样的:

print('\033[1;32;40m这里是需要显示的文字\033[0m')

  颜色的控制通过ESC字符(\033)加”[“加颜色代码加”m”实现。ESC的ASCII码是十进制的27,八进制的033(\033),十六进制的1b(\x1b)。所以下面的代码也是可以的:

print('\033[1;32;40m这里是需要显示的文字\033[0m')
print('\x1b[1;32;40m这里是需要显示的文字\x1b[0m')
# 混用也是可以的,Python中只有\0\x两种转义数字,所以不能用十进制的27
print('\x1b[1;32;40m这里是需要显示的文字\033[0m')
# 里面的文字样式,可以只设置一种
print('\033[4m这里是需要显示的文字\033[0m') #文字显示下划线
print('\033[31m这里是需要显示的文字\033[0m') #显示红色文字
print('\033[42m这里是需要显示的文字\033[0m') #显示绿色背景

  代码具体含义按顺序如下:

  1. “\033”声明了转义序列的开始,
  2. “[”开始定义颜色。
  3. “1”定义了高亮显示字符,具体如下
  4. “32”,表示前景颜色为绿色
  5. “40”,表示黑色背景
  6. “m”,这个m不能忘了
  7. 这里是你要显示的带颜色的文字
  8. “\033[0m”关闭转义序列
第三条的数字代表的意思:
0 终端默认设置(黑底白字)
1 高亮显示
4 使用下划线
5 闪烁
7 反白显示
8 不可见

完整颜色信息及含义如下:

颜色列表如下:  
none         = "\033[0m"
black        = "\033[0;30m"
dark_gray    = "\033[1;30m"
blue         = "\033[0;34m"
light_blue   = "\033[1;34m"
green        = "\033[0;32m"
light_green -= "\033[1;32m"
cyan         = "\033[0;36m"  
light_cyan   = "\033[1;36m"  
red          = "\033[0;31m"  
light_red    = "\033[1;31m"  
purple       = "\033[0;35m"  
light_purple = "\033[1;35m"  
brown        = "\033[0;33m"  
yellow       = "\033[1;33m"  
light_gray   = "\033[0;37m"  
white        = "\033[1;37m"  

背景颜色范围:40-47               文字颜色: 30-37
40:黑                          30: 黑  
41:红                          31: 红  
42:绿                          32: 绿  
43:黄                          33: 黄  
44:蓝                          34: 蓝  
45:紫                          35: 紫  
46:深绿                        36: 深绿  
47:白色                        37: 白色  

输出特效格式控制:
\033[0m   关闭所有属性
\033[1m   设置高亮度
\033[4m   下划线
\033[5m   闪烁
\033[7m   反显
\033[8m   消隐
\033[30m   --   \033[37m   设置前景色
\033[40m   --   \033[47m   设置背景色

光标位置等的格式控制:
\033[nA  光标上移n行
\033[nB   光标下移n行
\033[nC   光标右移n行
\033[nD   光标左移n行
\033[y;xH 设置光标位置
\033[2J   清屏
\033[K   清除从光标到行尾的内容
\033[s   保存光标位置
\033[u   恢复光标位置
\033[?25l   隐藏光标
\033[?25h   显示光标

相关推荐

Linux 网络协议栈_linux网络协议栈

前言;更多学习资料(包含视频、技术学习路线图谱、文档等)后台私信《资料》免费领取技术点包含了C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,Z...

揭秘 BPF map 前生今世_bpfdm

1.前言众所周知,map可用于内核BPF程序和用户应用程序之间实现双向的数据交换,为BPF技术中的重要基础数据结构。在BPF程序中可以通过声明structbpf_map_def...

教你简单 提取fmpeg 视频,音频,字幕 方法

ffmpeg提取视频,音频,字幕方法(HowtoExtractVideo,Audio,SubtitlefromOriginalVideo?)1.提取视频(ExtractVi...

Linux内核原理到代码详解《内核视频教程》

Linux内核原理-进程入门进程进程不仅仅是一段可执行程序的代码,通常进程还包括其他资源,比如打开的文件,挂起的信号,内核内部的数据结构,处理器状态,内存地址空间,或多个执行线程,存放全局变量的数据段...

Linux C Socket UDP编程详解及实例分享

1、UDP网络编程主要流程UDP协议的程序设计框架,客户端和服务器之间的差别在于服务器必须使用bind()函数来绑定侦听的本地UDP端口,而客户端则可以不进行绑定,直接发送到服务器地址的某个端口地址。...

libevent源码分析之bufferevent使用详解

libevent的bufferevent在event的基础上自己维护了一个buffer,这样的话,就不需要再自己管理一个buffer了。先看看structbufferevent这个结构体struct...

一次解决Linux内核内存泄漏实战全过程

什么是内存泄漏:程序向系统申请内存,使用完不需要之后,不释放内存还给系统回收,造成申请的内存被浪费.发现系统中内存使用量随着时间的流逝,消耗的越来越多,例如下图所示:接下来的排查思路是:1.监控系统中...

彻底搞清楚内存泄漏的原因,如何避免内存泄漏,如何定位内存泄漏

作为C/C++开发人员,内存泄漏是最容易遇到的问题之一,这是由C/C++语言的特性引起的。C/C++语言与其他语言不同,需要开发者去申请和释放内存,即需要开发者去管理内存,如果内存使用不当,就容易造成...

linux网络编程常见API详解_linux网络编程视频教程

Linux网络编程API函数初步剖析今天我们来分析一下前几篇博文中提到的网络编程中几个核心的API,探究一下当我们调用每个API时,内核中具体做了哪些准备和初始化工作。1、socket(family...

Linux下C++访问web—使用libcurl库调用http接口发送解析json数据

一、背景这两天由于一些原因研究了研究如何在客户端C++代码中调用web服务端接口,需要访问url,并传入json数据,拿到返回值,并解析。 现在的情形是远程服务端的接口参数和返回类型都是json的字符...

平衡感知调节:“系统如人” 视角下的架构设计与业务稳定之道

在今天这个到处都是数字化的时代,系统可不是一堆冷冰冰的代码。它就像一个活生生的“数字人”,没了它,业务根本转不起来。总说“技术要为业务服务”,但实际操作起来问题不少:系统怎么才能快速响应业务需求?...

谈谈分布式文件系统下的本地缓存_什么是分布式文件存储

在分布式文件系统中,为了提高系统的性能,常常会引入不同类型的缓存存储系统(算法优化所带来的的效果可能远远不如缓存带来的优化效果)。在软件中缓存存储系统一般可分为了两类:一、分布式缓存,例如:Memca...

进程间通信之信号量semaphore--linux内核剖析

什么是信号量信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明它被占用,测试的线程要进入睡眠...

Qt编写推流程序/支持webrtc265/从此不用再转码/打开新世界的大门

一、前言在推流领域,尤其是监控行业,现在主流设备基本上都是265格式的视频流,想要在网页上直接显示监控流,之前的方案是,要么转成hls,要么魔改支持265格式的flv,要么265转成264,如果要追求...

30 分钟搞定 SpringBoot 视频推拉流!实战避坑指南

30分钟搞定SpringBoot视频推拉流!实战避坑指南在音视频开发领域,SpringBoot凭借其快速开发特性,成为很多开发者实现视频推拉流功能的首选框架。但实际开发中,从环境搭建到流处理优...

取消回复欢迎 发表评论: