IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

imprimer texte en rouge avec module termcolor 1.1.0


Sujet :

Python

  1. #1
    Futur Membre du Club Avatar de IVK2000
    Homme Profil pro
    débutant en Python
    Inscrit en
    septembre 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : débutant en Python

    Informations forums :
    Inscription : septembre 2021
    Messages : 13
    Points : 9
    Points
    9
    Par défaut imprimer texte en rouge avec module termcolor 1.1.0
    Bonjour à tous!
    Je suis sous Windows 10
    Quand je lance le code suivant pour obtenir un texte en rouge dans le terminal j'obtiens des petits rectangles :

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        import sys
        from termcolor import colored, cprint
     
           text = colored('Hello, World!', 'red', attrs=['reverse', 'blink'])
           print(text)
    voici le résultat (sans aucune couleur) :

    Hello, World!
    Si vous avez une solution plus simple pour afficher un texte en rouge, je suis également preneur.
    Merci par avance.

  2. #2
    Membre éprouvé
    Inscrit en
    février 2003
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : février 2003
    Messages : 1 220
    Points : 1 261
    Points
    1 261
    Par défaut
    Je pense que ça vient de la console Ms-Dos de Windows.

    Je suppose que tu as testé à la fois avec la console Ms-Dos et celle de Powershell ?

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    18 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 18 383
    Points : 31 790
    Points
    31 790
    Par défaut
    Citation Envoyé par IVK2000 Voir le message
    Si vous avez une solution plus simple pour afficher un texte en rouge, je suis également preneur.
    En cherchant un peu sur Internet, vous auriez essayé cette solution:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import sys
    from termcolor import colored, cprint
     
    import colorama
    colorama.init()
     
    text = colored('Hello, World!', 'red', attrs=['reverse', 'blink'])
    print(text)
    qui marche chez moi... Et si ça ne fonctionne pas chez vous, il y a d'autres solutions dépendant de votre environnement système ou du terminal utilisé.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre éprouvé
    Inscrit en
    février 2003
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : février 2003
    Messages : 1 220
    Points : 1 261
    Points
    1 261
    Par défaut
    Pour info, je suis sous Windows 10 et j'ai testé avec cmd.exe, powershell.exe et Git bash.

    Avec le code initialement proposé par IVK2000, je vois le contenu du print surligné en rouge dans la console.

    Avec le code modifié par wiztricks, c'est le texte qui s'affiche en rouge, sans surlignage.

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    9 399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 9 399
    Points : 25 844
    Points
    25 844
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Arioch Voir le message
    Avec le code modifié par wiztricks, c'est le texte qui s'affiche en rouge, sans surlignage.
    Ben chez-moi il apparait en blanc clignotant surligné de rouge...
    Nom : xxx.png
Affichages : 52
Taille : 50,3 Ko
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    18 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 18 383
    Points : 31 790
    Points
    31 790
    Par défaut
    Citation Envoyé par Arioch Voir le message
    Avec le code modifié par wiztricks, c'est le texte qui s'affiche en rouge, sans surlignage.
    Les documentations de termcolor et de colorama expliquent ce qui fonctionne et où...

    Puis si on travaille sur Windows, on va lire la prose de microsoft sur le sujet.

    Nous avons créé Internet pour pouvoir trouver des solutions à ce genre de problèmes... Utilisez le!

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Futur Membre du Club Avatar de IVK2000
    Homme Profil pro
    débutant en Python
    Inscrit en
    septembre 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : débutant en Python

    Informations forums :
    Inscription : septembre 2021
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Toujours pas de solution.
    Merci à tous pour votre aide mais je n'ai toujours pas de solution.
    Grâce à vous j'ai au moins compris que c'est mon ordinateur qui a un problème.
    J'ai aussi compris qu'il y avait plusieurs méthodes pour colorer le texte.

    J'ai essayé les solutions suivantes mais malheureusement sans résultat.
    Encore merci.

    https://appuals.com/how-to-fix-alt-c...on-windows-10/

  8. #8
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    décembre 2008
    Messages
    2 231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2008
    Messages : 2 231
    Points : 5 614
    Points
    5 614
    Par défaut
    hello,
    pour faire du texte coloré il y a aussi la bibliothèque rich qui fonctionne sous tous les O.S principaux (windows,linux,osX).
    Rich est une bibliothèque Python pour dutexte riche et une belle mise en forme dans le terminal. Rich peut également rendre de jolies tables, des barres de progression, des démarques, du code source mis en évidence par la syntaxe, des retraits, etc.
    Rich est livré avec de nombreuses fonctionnalités pour améliorer l'apparence de nos applications de console et l'API Rich est si facile à utiliser. Il a des millions de couleurs, des fonctionnalités de formatage de texte, des fonctionnalités de formatage de tableau, des barres de progression sympas et bien plus encore. Et tout cela peut être fait avec seulement quelques lignes de code.
    Nom : PythonRichWinTerm.PNG
Affichages : 43
Taille : 91,2 Ko


    la documentation est ici
    A Noter :
    On Windows both the (ancient) cmd.exe terminal is supported and the new Windows Terminal. The later has much improved support for color and style.
    Rich requires Python 3.6.1 and above. Note that Python 3.6.0 is not supported due to lack of support for methods on NamedTuples.
    Note
    PyCharm users will need to enable “emulate terminal” in output console option in run/debug configuration to see styled output.
    Effectivement sous windows 10 j'ai constaté que dans l'invite de commande classique de windows (cmd.exe) il y avait beaucoup d'attributs qui ne fonctionnaient pas (clignotement, italique, emoji etc...).
    Cela fonctionne beaucoup mieux dans le nouveau Windows Terminal :
    Le Terminal Windows est une application de terminal moderne pour les utilisateurs d’outils en ligne de commande et d’interpréteurs de commandes tels que l’invite de commandes, PowerShell et le Sous-système Windows pour Linux (WSL). Ses principales fonctionnalités comprennent un affichage multi-onglet, des volets, une prise en charge des caractères Unicode et UTF-8, un moteur de rendu de texte accéléré par GPU, ainsi que la possibilité de créer vos propres thèmes et de personnaliser le texte, les couleurs, les arrière-plans et les touches de raccourci.
    Pour l'installer voir ici


    Voici un exemple d'utilisation de cette bibliothèque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    from rich import print
    print("[red][bold]Salut[/bold] [italic]le[/italic] [underline]monde[/underline] ![/red]",":smiley:")
    print("[strike]Salut[/strike] [red on cyan]le[/red on cyan] [blink][red]monde[/red][/blink] !")
    voici ce que cela donne dans une invite de commandes windows classique :
    Nom : wincmdrich.PNG
Affichages : 43
Taille : 10,2 Ko

    et voici ce que cela donne dans une invite de commandes ouverte dans Windows Terminal :
    Nom : wintermrich.gif
Affichages : 45
Taille : 45,8 Ko

    On voit bien que le Windows Terminal supporte tous les attributs. Sous Ubuntu 20.04 cela donne le même résultat.

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    18 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 18 383
    Points : 31 790
    Points
    31 790
    Par défaut
    Salut,

    Citation Envoyé par IVK2000 Voir le message
    Merci à tous pour votre aide mais je n'ai toujours pas de solution.
    Depuis le début des années 90, on utilise des interfaces graphiques (plutôt qu'un simple terminal). Les bibliothèques correspondantes sont "portées" sur presque tous les environnements (ce qui rend les applications "portables).

    Et vous n'aurez difficilement des possibilités équivalentes sur un terminal simple avec des émulations +/- correctes/complètes de la norme ANSI.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  10. #10
    Futur Membre du Club Avatar de IVK2000
    Homme Profil pro
    débutant en Python
    Inscrit en
    septembre 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : débutant en Python

    Informations forums :
    Inscription : septembre 2021
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Toujours le même problème de petits rectangles et pas de texte coloré sauf...
    Merci pour ton aide Jurassic Pork mais le résultat est le suivant :

    Salut le monde ! 😃
    Salut le monde !


    Au moins j'ai l'emoji qui sourie en couleur "😃". Cela donne-t-'il une piste?
    Mais le module Rich est génial!
    C'est bizarre que personne n'ait rencontré mon problème avant.
    Je pense qu'il faudrait trouver un forum qui règle la configuration sous Windows ou qui répare ce type de bugs si s'en est un.
    Encore merci et très bonne journée.

  11. #11
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    décembre 2008
    Messages
    2 231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2008
    Messages : 2 231
    Points : 5 614
    Points
    5 614
    Par défaut
    hello,
    Quelle version de windows 10 as-tu (dans la première ligne qui s'affiche quand on lance un cmd.exe) ?
    Sinon tu peux essayer ceci :
    À partir de Windows 10, on peut utiliser ENABLE_VIRTUAL_TERMINAL_PROCESSING pour activer les séquences d'échappement ANSI.
    Tu peux essayer cette commande pour réaliser cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    REG ADD HKCU\CONSOLE /f /v VirtualTerminalLevel /t REG_DWORD /d 1
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  12. #12
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    9 399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 9 399
    Points : 25 844
    Points
    25 844
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par IVK2000 Voir le message
    Merci pour ton aide Jurassic Pork mais le résultat est le suivant :

    Salut le monde ! 😃
    Salut le monde !
    Ces "" et suivants sont les séquences de caractères qui permettent de modifier les effets du texte (escapes strings).
    Possible que ton terminal zindow ne soit pas adapté (trop vieux ou plutôt trop récent)...
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  13. #13
    Futur Membre du Club Avatar de IVK2000
    Homme Profil pro
    débutant en Python
    Inscrit en
    septembre 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : débutant en Python

    Informations forums :
    Inscription : septembre 2021
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Ma version de Windows
    Citation Envoyé par jurassic pork Voir le message
    hello,
    Quelle version de windows 10 as-tu (dans la première ligne qui s'affiche quand on lance un cmd.exe) ?
    Sinon tu peux essayer ceci :
    À partir de Windows 10, on peut utiliser ENABLE_VIRTUAL_TERMINAL_PROCESSING pour activer les séquences d'échappement ANSI.
    Tu peux essayer cette commande pour réaliser cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    REG ADD HKCU\CONSOLE /f /v VirtualTerminalLevel /t REG_DWORD /d 1
    Ami calmant, J.P
    Salut Jurassic Porc
    Voici ma version de windows 10 Entreprise sur la capture d'écran :
    Je vais essayer la ligne de code que tu a écrite.
    Images attachées Images attachées  

  14. #14
    Futur Membre du Club Avatar de IVK2000
    Homme Profil pro
    débutant en Python
    Inscrit en
    septembre 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : débutant en Python

    Informations forums :
    Inscription : septembre 2021
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Ces "" et suivants sont les séquences de caractères qui permettent de modifier les effets du texte (escapes strings).
    Possible que ton terminal zindow ne soit pas adapté (trop vieux ou plutôt trop récent)...
    Salut. J'ai bien compris. Si je ne trouve pas la solution je vais restaurer l'ordinateur pour voir.

  15. #15
    Futur Membre du Club Avatar de IVK2000
    Homme Profil pro
    débutant en Python
    Inscrit en
    septembre 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : débutant en Python

    Informations forums :
    Inscription : septembre 2021
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Du nouveau - impression en couleur pour fichier exécutable mais pas dans Python Shell
    Après avoir exécuté la ligne suivante j'ai obtenu la couleur souhaité en rendant le fichier .py exécutable mais dans l'interpréteur Python Shell
    le problème subsiste.
    REG ADD HKCU\CONSOLE /f /v VirtualTerminalLevel /t REG_DWORD /d 1
    Il faut peut-être utiliser un autre IDE?
    Images attachées Images attachées   

  16. #16
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    décembre 2008
    Messages
    2 231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2008
    Messages : 2 231
    Points : 5 614
    Points
    5 614
    Par défaut
    hello,
    Citation Envoyé par IVK2000 Voir le message
    Après avoir exécuté la ligne suivante j'ai obtenu la couleur souhaité en rendant le fichier .py exécutable mais dans l'interpréteur Python Shell
    le problème subsiste.
    REG ADD HKCU\CONSOLE /f /v VirtualTerminalLevel /t REG_DWORD /d 1
    Il faut peut-être utiliser un autre IDE?
    Qu'entends-tu par dans l'interpréteur Python Shell ? comment lances-tu ton script ? parce que chez moi en lançant python.exe puis en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     from rich import print
    print("[red]rouge[/red]")
    cela fonctionne :
    Nom : pythonrich.PNG
Affichages : 24
Taille : 22,2 Ko

    Dans le python idle shell cela ne fonctionne pas car l'affichage ne se fait pas dans une console windows donc pas d'émulation de terminal. Avec l'IDE PyCharm on peut le faire :
    Note
    PyCharm users will need to enable “emulate terminal” in output console option in run/debug configuration to see styled output.

    D'autre part d'après ta capture d'écran j'ai vu que tu n'utilisais pas windows terminal : cela améliorerait nettement l'utilisation de rich sous windows.

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  17. #17
    Futur Membre du Club Avatar de IVK2000
    Homme Profil pro
    débutant en Python
    Inscrit en
    septembre 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : débutant en Python

    Informations forums :
    Inscription : septembre 2021
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Cà fonctionne!
    Je viens d'installer "Windows Terminal". Je suis désolé mais je ne savais même pas que ça existait.
    Je crois que cette piste avait été évoquée mais je n'ai même pas compris ce que ça voulait dire. désolé.
    Cependant dès que je lance mon programme.exe il apparait encore dans l'ancien terminal de Windows et non dans le "Windows Terminal" que je viens d'installer.

    En ce qui concerne ma façon de tester les scripts :
    -J'ouvre un nouveau fichier dans IDLE Shell 3.9.6
    -Je saisie mon script, j'enregistre puis je clique sur "run"
    -Le programme s'exécute sur IDLE Shell
    -Je n'utilisais pas Python.exe car dans le bouquin il est écrit que l'on a les mêmes résultats (ce qui est inexact).

    -Ca fonctionne sur Python.exe (texte en couleur sans rectangles)

    Comme je suis débutant tous mes programmes ont toujours fonctionné jusqu'à ce que j'essaie de changer la couler du texte.
    J'avais ces fameux rectangles. Je comprends que c'est normal car IDLE Shell n'est pas adapté à ce type d'affichage.
    Je vais essayer d'utiliser Pycharm
    Je remercie Jurassic PorK et tous ceux qui m'ont aidé en m'accordant un peu de leur temps précieux.
    Sincère gratitude.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2000] Justification de texte dans un état avec module
    Par moule dans le forum IHM
    Réponses: 0
    Dernier message: 03/12/2009, 20h51
  2. [03]Texte RTF avec module MsgBoxPLUS d'Arkham
    Par seb92400 dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/06/2007, 11h54
  3. [CR][Java] imprimer un état CR avec java
    Par wassimb dans le forum SDK
    Réponses: 2
    Dernier message: 24/05/2004, 16h40
  4. Comment renommer un champ avec Module BD?
    Par technico dans le forum Bases de données
    Réponses: 4
    Dernier message: 27/01/2004, 21h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo