彩色进度条

505 查看

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)