Как напечатать определенные слова в цвете на питоне? - PullRequest
0 голосов
/ 23 октября 2018

Я хочу напечатать определенное слово разным цветом каждый раз, когда оно появляется в тексте.В существующем коде я напечатал строки, которые содержат соответствующее слово «один».

import json
from colorama import Fore
fh = open(r"fle.json")
corpus = json.loads(fh.read())
for m in corpus['smsCorpus']['message']:
    identity = m['@id']
    text = m['text']['$']
    strtext = str(text)
    utterances = strtext.split()
    if 'one' in utterances:

        print(identity,text, sep ='\t')

Я импортировал Fore, но не знаю, где его использовать.Я хочу использовать его, чтобы слово «один» было другого цвета.

вывод (раздел)

44814 Ohhh that's the one Johnson told us about...can you send it to me? 44870 Kinda... I went but no one else did, I so just went with Sarah to get lunch xP 44951 No, it was directed in one place loudly and stopped when I stoppedmore or less 44961 Because it raised awareness but no one acted on their new awareness, I guess 44984 We need to do a fob analysis like our mcs onec

Спасибовы

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

я использую цветной модуль по этой ссылке или цветной модуль эту ссылку Кроме того, если вы не хотите использовать модуль для раскраски, вы можете обратиться к этой ссылке или эта ссылка

0 голосов
/ 23 октября 2018

Вы также можете просто использовать цветовые коды ANSI в своих строках:

# define aliases to the color-codes
red = "\033[31m"
green = "\033[32m"
blue = "\033[34m"
reset = "\033[39m"

t = "That was one hell of a show for a one man band!"
utterances = t.split()

if "one" in utterances:
    # figure out the list-indices of occurences of "one"
    idxs = [i for i, x in enumerate(utterances) if x == "one"]

    # modify the occurences by wrapping them in ANSI sequences
    for i in idxs:
        utterances[i] = red + utterances[i] + reset


# join the list back into a string and print
utterances = " ".join(utterances)
print(utterances)
0 голосов
/ 23 октября 2018

Если у вас есть только 1 цветное слово, вы можете использовать это, я думаю, вы можете расширить логику для n цветных слов:

our_str = "Ohhh that's the one Johnson told us about...can you send it to me?"

def colour_one(our_str):

    if "one" in our_str:
        str1, str2 = our_str.split("one")

        new_str = str1 + Fore.RED + 'one' + Style.RESET_ALL + str2
    else:
        new_str = our_str        

    return new_str

Я думаю, что это уродливое решение, даже не уверенное, работает ли оно,Но это решение, если вы не можете найти ничего другого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...