本文的实验环境是 Python 3.6.1 |Anaconda 4.4.0 (64-bit),Win10
知识储备
如何修改命令行中字体颜色?
print("\033[显示方式; 前景色; 背景色m")
具体的描述可以参考文章 《python_控制台输出带颜色的文字方法》。
经实测,效果不是特别稳定,在有的机器上可以跑通,有的机器上却不行。
在 Python 3.x 中,使用 colorama 模块实现对控制台字体颜色的改变。
经实测,效果稳定。例子如下,运行效果如图1所示。
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 colorama 样例
问题描述
需求1:有一段文本和文本中的关键词列表如下所示。要求在原文本上用角括号将每个关键词标注出来。
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 在原句中用角括号标注关键词
需求2:在需求1的基础上,用红色字体突出显示关键词。
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')
图3 用红色字体突出显示关键词
参考文献