python display color output

起因

在开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中。而一般的应用服务器,第三方库,甚至服务器的一些通告也会在终端中显示,这样就搅乱了我们想要的信息。

解决

我们可以通过对有用的信息设置不同颜色来达到醒目的效果,因为我平时都是在linux下开发,而linux终端中的颜色是用转义序列控 制的,转义序列是以ESC开头,可以用\033完成相同的工作(ESC的ASCII码用十进制表示就是27,等于用八进制表示的33)。

书写格式,和相关说明如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

格式:\033[显示方式;前景色;背景色m

说明:

前景色            背景色           颜色

---------------------------------------

30                40              黑色

31                41              红色

32                42              绿色

33                43              黃色

34                44              蓝色

35                45              紫红色

36                46              青蓝色

37                47              白色

显示方式           意义

-------------------------

0                终端默认设置

1                高亮显示

4                使用下划线

5                闪烁

7                反白显示

8                不可见

例子:

\033[1;31;40m    <!--1-高亮显示 31-前景色红色  40-背景色黑色-->

\033[0m          <!--采用终端默认设置,即取消颜色设置-->

下面是我在python中使用的方式:


1

2

3

4

5

6

7

8

print ‘\033[1;31;40m‘

print ‘*‘ * 50

print ‘*HOST:\t‘, request.META.get(‘REMOTE_ADDR‘)

print ‘*URI:\t‘, request.path

print ‘*ARGS:\t‘, QueryDict(request.body)

print ‘*TIME:\t‘, time.time() - request.start_time

print ‘*‘ * 50

print ‘\033[0m‘

效果图如下:

      当然这只是一种简单的实现方式,而且仅在linux下有效,其它方式可以使用termcolor,或者参考ipython的console实现(pyreadline)。

时间: 2024-10-06 18:03:23

python display color output的相关文章

Shell displays color output

格式: echo "/033[字背景颜色;字体颜色m字符串/033[控制码" 如果单纯显示字体颜色可以固定控制码位0m. 格式: echo "/033[字背景颜色;字体颜色m字符串/033[0m" 字背景颜色范围:40 - 49 40:黑 41:深红 42:绿 43:黄色 44:蓝色 45:紫色 46:深绿 47:白色 字颜色:30 - 39 30:黑 31:红 32:绿 33:黄 34:蓝色 35:紫色 36:深绿 37:白色 ANSI控制码 \033[0m 关闭

Python虚拟环境的构建和使用

---恢复内容开始--- 虚拟环境构建和使用 .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px solid #000; } .table { border-collapse: collapse !important; } .table td, .table th { background-color: #fff !important; } .table-bord

3.Python常用逻辑运算符

#header { /* Initially hidden to prevent FLOUC */ display: none; background-color: #fff; /* Display over codemirror */ position: relative; z-index: 100; } body > #header #header-container { display: flex; flex-direction: row; justify-content: space-b

写一个python的服务监控程序

写一个python的服务监控程序 前言: Redhat下安装Python2.7 rhel6.4自带的是2.6, 发现有的机器是python2.4. 到python站点下载源码.解压到Redhat上.然后执行以下的命令: # ./configure --prefix=/usr/local/python27 # make # make install 这样安装之后默认不会启用Python2.7.须要使用/usr/local/python27/bin/python2.7调用新版本号的python. 而

一起来写2048(160行python代码)

前言: Life is short ,you need python. --Bruce Eckel 我与2048的缘,不是缘于一个玩家,而是一次,一次,重新的ACM比赛.四月份校赛初赛,第一次碰到2048,两周后决赛再次遇到2048,后来五月份的广东省赛,又出现了2048.在这三次比赛过程中,我一次2048都没玩过..全靠队友的解释,直到昨天,我突然想起写个2048吧,于是下了个2048玩了几盘,之后就開始用python来写了,心想就不写界面了,为了简洁. 我对python并不熟悉,可是我在之前

QtDesigner PyQt4 Python

本文讲述用QtDesigner创建GUI,通过PyQt4转化为可执行的Python文件 1. QtDesigner创建一个GUI后会生成一个 .ui文件 (eg: TestUI.ui) 2. 通过命令 Python pyuic.py -o TestUI.py TestUI.ui 生成我们需要的py文件(TestUI.py) 3. 创建一个 Test.py 文件,编辑以下代码: 1 import sys 2 from PyQt4.QtGui import * 3 from PyQt4.QtCore

在用Kivy开发Python手机游戏时通过Plyer扩展访问Android传感器

这是一篇发表在kivyspacegame上的文章,讲的是如何使用python在你的安卓设备上访问传感器.这篇教程是为这些用kivy开发python移动apps而写的.Kivy运行速度非常快,并且很容易使用.访问博客以获取更多的关于用Kivy开发游戏的教程.也可以看看google play store上的Helios: Mining Adventure游戏程序. 这篇教程将关注plyer,一个可以读取传感器,发送email,以及将文本转成语音,显示通知等等功能的库.如果你正在用python开发移动

python学习之循环

为什么需要循环,假如设想这样一种情况,如果你需要打印一条语句1000次,如果没有循环,你必须输出这条语句1000次,而使用循环只需要二行代码就可以完成这个目的. 所有的循环方式都是类C语言的,除过语言特性不一样 while循环:当一个条件保持为真时while循环重复执行语句 while循环的语法: while loop--continuation-condition: Statement(s) 一个循环体单次执行被称作循环的一次迭代,每个循环都包含一个循环继续条件,这是控制循环体执行的布尔表达式

Use xrandr for multiple screen display

Gnome 3 does not have good support for multiple screen display. It is therefore necessary to use xrandr for such purpose. It can be used as follows. Display the configurations: $ xrandr Screen 0: minimum 8 x 8, current 1680 x 1050, maximum 16384 x 16