2016-05-23 2 views
1

通知をプログラムのユーザーに印刷します。ここに私のコードだ:文字列内の特定の単語に色を追加するにはどうすればよいですか?

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================ 

しかし、私は、ヘッダー、フッター、および行番号が赤になるように、それは印刷したいです。それは、出力全体が赤で、「プログラムがエラーを見つけました」ということを赤色にしたくありません。

+0

お試し版http://stackoverflow.com/a/42528796/610569 – alvas

答えて

0

ヘッダーとフッターの行にColour.ENDを追加する必要があります。赤い色が2行目に続くことはありません。各行の最後に追加します。

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) 
関連する問題