如何给字符串中的特定单词添加颜色?

2024-06-01 01:48:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我想打印一份通知给程序用户。这是我的代码:

class Colour:
   PURPLE = '\033[95m'
   CYAN = '\033[96m'
   DARKCYAN = '\033[36m'
   BLUE = '\033[94m'
   GREEN = '\033[92m'
   YELLOW = '\033[93m'
   RED = '\033[91m'
   BOLD = '\033[1m'
   UNDERLINE = '\033[4m'
   END = '\033[0m'

import pickle
import string
import re
from Colour import Colour

wordFile = open("texts/words2.txt", "r")
alpha = "abcdefghijklmnopqrstuvxwyz"
wordList = []
linesInFile = {}
lineCounter = 0
mispelled = []

for line in wordFile:
    linesInFile.update({lineCounter:line})
    lineCounter += 1
    for word in line.split():
        word = ''.join(ch for ch in word if ch not in string.punctuation)
        wordList.append(re.sub("[^a-z]", "", word.lower()))

trie = pickle.load(open("Pickled Trees/trie.pkl", "rb"))
trieList = trie.list("", [])

for word in wordList:
    if word not in trieList:
        if len(word) > 1:
            mispelled.append(word)

for key, value in linesInFile.items():
    if mispelled[0] in value:
        print(Colour.RED + "================ERROR================")
        print("The program found an error on line " + Colour.RED + str(key) + Colour.END)
        print(Colour.RED + "================ERROR================")

现在,这将打印以下内容:

================ERROR================
The program found an error on line 57
================ERROR================

但是,我希望打印时只有页眉、页脚和行号是红色的。事实上,整个输出都是红色的,我不希望“程序在线发现错误”是红色的。


Tags: inimportforiflineerrorredch
1条回答
网友
1楼 · 发布于 2024-06-01 01:48:39

您需要将Colour.END添加到页眉和页脚行。所以红色不会在第二行继续。把它加到每行的末尾。

print(Colour.RED + "================ERROR================" + Colour.END)
print("The program found an error on line " + Colour.RED + str(key) + Colour.END)
print(Colour.RED + "================ERROR================" + Colour.END)

相关问题 更多 >