Python 输出的那些好玩的东东

慢慢发现 Python 输出里一些好玩儿的奇技淫巧,一条一条列出来,发现了新的会更新补上。

彩色输出

现在命令行中输出彩色的信息,需要在输出之前设定颜色,之后再将颜色恢复,否则就一直彩色下去啦。

COLOR_CODES = {
    \'debug\': \'\\033[1;34m\',  # blue
    \'info\': \'\\033[1;32m\',  # green
    \'warning\': \'\\033[1;33m\',  # yellow
    \'error\': \'\\033[1;31m\',  # red
    \'critical\': \'\\033[1;41m\',  # background red
}

RESET_COLOR = \'\\033[0m\'


def color_msg(level, msg):
    return COLOR_CODES[level] + msg + RESET_COLOR

进度条

进度条实现起来呢,主要就是每次输出不换行,然后在一行输出完成之后让光标回到行首重新输出,这里用到 \'\\r\' 来使光标 回车。记得 print 之后加上 \',\' 避免换行,以及及时刷新输出。

import sys
import time

for i in range(10):
    print \'\\r%s\' % i,
    sys.stdout.flush()
    time.sleep(0.5)

有了这种输出的特殊技巧,想造出什么样的进度条就看心情咯~~

看!跑马灯!

from collections import deque
import sys
import time

loading = deque(\'>---------------\')

while 1:
    print \'\\r%s\' % \'\'.join(loading),
    loading.rotate()
    sys.stdout.flush()
    time.sleep(0.1)