本文的实验环境是 Python 3.6.1 |Anaconda 4.4.0 (64-bit),Win10
知识储备
如何修改命令行中字体颜色?
print("\033[显示方式; 前景色; 背景色m")
具体的描述可以参考文章 《 python_控制台输出带颜色的文字方法 》.
经实测,效果不是特别稳定,在有的机器上可以跑通,有的机器上却不行.
在 Python 3.x 中,使用 colorama 模块实现对控制台字体颜色的改变.
经实测,效果稳定.例子如下,运行效果如图 1 所示.
图 1 colorama 样例
import colorama
from colorama import Fore, Back, Style
colorama.init()
text = "成都信息工程大学欢迎您!"
# 将前景设为红色,背景默认是黑色
print(Fore.RED + text)
# 将背景设为白色,前景沿用之前的红色,并且在显示完之后将格式复位
print(Back.WHITE + text + Style.RESET_ALL)
print(text)
# 将前景设为黑色,背景设为白色
print(Fore.BLACK + Back.WHITE + text + Style.RESET_ALL)
问题描述
需求 1:有一段文本和文本中的关键词列表如下所示.要求在原文本上用角括号将每个关键词标注出来.
图 2 在原句中用角括号标注关键词
text = "青蒿 10g 后下,菊花 10g,柴胡 10g,大黄 10g 后下,法半夏 10g,黄芩 15g,竹茹 15g,白蒺藜 12g,苍耳子 12g,大青叶 30g,水牛角 30g 先煎."
key = ["青蒿", "菊花", "柴胡", "大黄", "法半夏", "黄芩", "竹茹", "白蒺藜", "苍耳子", "大青叶", "水牛角"]
text = "青蒿10g后下,菊花10g,柴胡10g,大黄10g后下,法半夏10g,黄芩15g,竹茹15g,白蒺藜12g,苍耳子12g,大青叶30g,水牛角30g先煎."
key = ["青蒿", "菊花", "柴胡", "大黄", "法半夏", "黄芩", "竹茹", "白蒺藜", "苍耳子", "大青叶", "水牛角"]
for each_key in key:
text = text.replace(each_key, '『' + each_key + '』')
print('\n' + text + '\n')
需求 2:在需求 1 的基础上,用红色字体突出显示关键词.
图 3 用红色字体突出显示关键词
import colorama
from colorama import Fore, Back, Style
colorama.init()
text = "青蒿10g后下,菊花10g,柴胡10g,大黄10g后下,法半夏10g,黄芩15g,竹茹15g,白蒺藜12g,苍耳子12g,大青叶30g,水牛角30g先煎."
key = ["青蒿", "菊花", "柴胡", "大黄", "法半夏", "黄芩", "竹茹", "白蒺藜", "苍耳子", "大青叶", "水牛角"]
print('\n')
for each_key in key:
out, text = text.split(each_key)
print(out, end="")
print(Fore.RED + '『' + each_key + '』' + Style.RESET_ALL, end="")
print(text)
print('\n')
参考文献
[1] Python3.x 更改控制台字体颜色
[2] python_控制台输出带颜色的文字方法
来源: http://www.jianshu.com/p/e5f072679c38