[Python] Changer la couleur du texte et la couleur d'arrière-plan d'un mot clé spécifique dans la sortie d'impression

Objectif de cet article

En Python, j'ai créé une fonction pour mettre en évidence et afficher un mot spécifique comme suit. image.png Il y a une [Liste de codes](# Liste de codes) à la fin de la page.

Commentaire

C'est tout ce dont vous avez besoin.

import re

Commencez par créer un dictionnaire pour changer la couleur du texte et la couleur d'arrière-plan. Cette fois, si `" yellow "` `, <font background-color = # FFCC00> couleur de fond jaune </ font>, if "red" `` `, caractères rouges Je l'ai défini comme </ font>.

color_dic = {'yellow':'\033[43m', 'red':'\033[31m', 'blue':'\033[34m', 'end':'\033[0m'}

Ensuite, définissez le mot-clé que vous souhaitez mettre en surbrillance. Cette fois, j'ai défini le nom de la préfecture comme mot-clé.

keyword = ["Tokyo", "Préfecture de Chiba", "Saitama", "Préfecture de Kanagawa", ...]

Les mots-clés définis ci-dessus seront recherchés dans l'ordre avec l'instruction for, mais l'ordre de la liste devient ici important, car selon le mot-clé, il peut s'agir d'une sous-chaîne d'un autre mot-clé. En effet, cela peut être le cas, par exemple lors de la recherche d'une ville, d'un quartier, d'une ville ou d'un village.

keyword = [... , "Ville de Tsu", "大Ville de Tsu", ...]

Si, recherchez simplement le mot de la gauche et colorez les résultats comme indiqué ci-dessous. image.png

La solution est donc de trier les mots de la liste par ordre croissant de caractères. Ensuite, "Otsu City" sera recherché en premier, le problème ci-dessus ne se produira donc pas. Ci-dessous le code.

#keyword = sorted(keyword, key=lambda x:len(x), reverse=True)
#Vous avez souligné une meilleure façon d'écrire dans les commentaires.
keyword.sort(key=len, reverse=True) 

Enfin, créez une fonction qui reçoit le texte de sortie, les mots-clés et les informations de spécification de couleur, et les génère.

def print_hl(text, keyword, color="yellow"):
    for kw in keyword:
        bef = kw
        aft = color_dic[color] + kw + color_dic["end"]
        text = re.sub(bef, aft, text)
    print(text)

L'exemple d'exécution est le suivant.

text = "Je vis à tokyo"

print_hl(text, keyword)

image.png

c'est tout!

Liste de codes

import re

color_dic = {'yellow':'\033[43m', 'red':'\033[31m', 'blue':'\033[34m', 'end':'\033[0m'}

def print_hl(text, keyword, color="yellow"):
    for kw in keyword:
        bef = kw
        aft = color_dic[color] + kw + color_dic["end"]
        text = re.sub(bef, aft, text)
    print(text)

keyword = ["Tokyo", "Préfecture de Chiba", "Saitama", "Préfecture de Kanagawa"]
keyword.sort(key=len, reverse=True)
text = "Je vis à tokyo"

print_hl(text, keyword)

référence

Comment sortir une sortie colorée sur la console

Recommended Posts

[Python] Changer la couleur du texte et la couleur d'arrière-plan d'un mot clé spécifique dans la sortie d'impression
[Python scraping] Affiche l'URL et le titre du site contenant un mot-clé spécifique dans un fichier texte
Sortie sous la forme d'un tableau python
Changer la saturation et la clarté des spécifications de couleur comme # ff000 dans python 2.5
Changer la destination de sortie standard en un fichier en Python
Obtenez le nombre d'éléments spécifiques dans la liste python
Détecter les objets d'une couleur et d'une taille spécifiques avec Python
Lire la sortie standard d'un sous-processus ligne par ligne en Python
Ouvrez un fichier Excel en Python et coloriez la carte du Japon
Sortie du nombre de cœurs de processeur en Python
Récupérer l'appelant d'une fonction en Python
Copiez la liste en Python
Changer la couleur des erreurs et avertissements Fabric
Prise en compte des forces et faiblesses de Python
Comment compter le nombre d'éléments dans Django et sortir dans le modèle
Utilisez libsixel pour générer Sixel en Python et générer le graphe Matplotlib vers le terminal.
Remplissez l'arrière-plan d'une seule couleur avec OpenCV2 + Python
Un mémorandum sur la mise en œuvre des recommandations en Python
Automatisez la suppression de l'arrière-plan pour les derniers portraits dans un répertoire avec Python et API
Le résultat de la création d'un album de cartes de jeunes mariés italiens en Python et de son partage
[Apprentissage automatique] "Détection d'anomalies et détection de changement" Dessinons la figure du chapitre 1 en Python.
[Mac] Un moyen très simple d'exécuter des commandes système en Python et de générer les résultats
[Sublime Text 2] Toujours exécuter un fichier spécifique dans le projet
En Python, les éléments de la liste sont triés et sortis sous forme d'éléments et de multiples.
[Note] Importation de fichiers dans le répertoire parent en Python
[Astuces] Problèmes et solutions dans le développement de python + kivy
Trouver les valeurs propres d'une vraie matrice symétrique en Python
Obtenir la valeur d'une clé spécifique jusqu'à l'index spécifié de la liste de dictionnaires en Python
Obtenez de manière récursive la liste Excel dans un dossier spécifique avec python et écrivez-la dans Excel.
Spécifiez le codage de la chaîne Unicode dans l'instruction d'impression Python 2.x
L'histoire de Python et l'histoire de NaN
Comptez bien le nombre de caractères thaïlandais et arabes en Python
Comment déterminer l'existence d'un élément sélénium en Python
Changer l'arrière-plan d'Ubuntu (GNOME)
L'extraction de couleur avec Python + OpenCV a résolu le mystère du fond vert
Comment changer la couleur du seul bouton pressé avec Tkinter
[Introduction à Python] Comment générer une chaîne de caractères dans une instruction Print
Comment vérifier la taille de la mémoire d'une variable en Python
Exportez le contenu de ~ .xlsx dans le dossier en HTML avec Python
N'hésitez pas à changer l'étiquette de légende avec Seaborn en python
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
Une fonction qui mesure le temps de traitement d'une méthode en python
[Python] Le rôle de l'astérisque devant la variable. Divisez la valeur d'entrée et affectez-la à une variable
Exporter et exporter des fichiers en Python
Lire et écrire du texte en Python
Obtenez le titre et la date de livraison de Yahoo! News en Python
L'histoire de la création d'un Bot qui affiche les membres actifs dans un canal spécifique de Slack avec Python
Obtenez le nombre de lecteurs d'articles sur Mendeley en Python
[Python / Jupyter] Traduisez le commentaire du programme copié dans le presse-papiers et insérez-le dans une nouvelle cellule.
Configurer un serveur SMTP factice avec Python et vérifier le fonctionnement de l'envoi depuis Action Mailer
Comment saisir une chaîne de caractères en Python et la sortir telle quelle ou dans la direction opposée.
Python VBA pour obtenir une capture de la page WEB entière avec Selenium
Calculer l'itinéraire le plus court d'un graphe avec la méthode Dyxtra et Python
Si vous voulez un singleton en python, considérez le module comme un singleton
Graphique de l'historique du nombre de couches de deep learning et du changement de précision
python> n'inclut pas les lettres mm> si "mm" pas dans le texte: / print "sans mm"
Comparer la grammaire de base de Python et Go d'une manière facile à comprendre
Vérifions la chaîne d'octets en mémoire du nombre flottant flottant en Python