print anweisung formatieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Kobra23759
User
Beiträge: 61
Registriert: Donnerstag 9. April 2020, 18:47

Hallo ich bitte um Hilfe,
kann mir jemand bei der ausgabe von print in bold mit einer bestimmten Farbe helfen
Mein Versuch hat nicht geplappt
Vielen Dank

from colorama import Fore, Back, Style
bold='\033[1m'
underline='\033[4m'
ent="\033[0m"

print("Vordergrund")
print(f"{Fore.RED}Red{Style.RESET_ALL}")
print("Hintergrund")
print(f"{Back.BLUE}Red{Style.RESET_ALL}")
print("Weiter")

print(bold+"BOLD"+ent)
print(bold+"Underline"+ent)
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Kann dein Terminal das denn? Denn ansonsten sieht das ganz gut aus.
Kobra23759
User
Beiträge: 61
Registriert: Donnerstag 9. April 2020, 18:47

danke für die Zwischenantwort
die Farbeinstellung klappt gut
ich bekomme aber keine fette bzw unterstrichene Ausgabe hin
Ich benutze Spyder
Benutzeravatar
__blackjack__
User
Beiträge: 13007
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Kobra23759: Nicht jedes Terminal oder jeder Terminal-Emulator unterstützt alle Steuercodes. Und manche stellen sie anders dar, „bold“ beispielsweise heller aber nicht fett. Manchmal kann es auch an den eingestellten/verfügbaren Schriftarten liegen, das beispielsweise eine Schriftart nicht in fett oder kursiv vorhanden ist, und das Anzeigeprogramm das nicht ”künstlich” macht.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
August1328
User
Beiträge: 65
Registriert: Samstag 27. Februar 2021, 12:18

Ich nutze auch colorama und habe nen Trick gebraucht, daß das in nem normalen command Fenster unter Windows funktioniert.

In der Konsole von VS Code funktioniert es einwandfrei, auch Dein Code, aber wenn ich in nem extra Fenster starte, sehe ich das:

Vordergrund
←[31mRed←[0m
Hintergrund
←[44mRed←[0m
Weiter
←[31m←[1mBOLD←[0m
←[4mUnderline←[0m

Das kenne ich. Ich bin durch Zufall darauf gestossen, daß es funktioniert, wenn man colorama 1x aufruft und dann das Konsolen Fenster 1x cleared, also "cls" ausführt.

Dann ist da noch ein kleiner Schreibfehler vor underline, mit "bold" wird nichts unterstrichen werden. Und wenn Du fett / bold mit rot Schrift willst, einfach kombinieren.

So funktioniert bei mir alles...

Code: Alles auswählen

from time import sleep
from colorama import Fore, Back, Style
from os import system

bold='\033[1m'
underline='\033[4m'
ent="\033[0m"

print(f"{Fore.RED}Farbe aktivieren{Style.RESET_ALL}\n")
sleep(1.5)
system('cls')

print("Vordergrund")
print(f"{Fore.RED}Red{Style.RESET_ALL}")
print("Hintergrund")
print(f"{Back.BLUE}Red{Style.RESET_ALL}")
print("Weiter")

print(f"{Fore.RED}{bold}BOLD{ent}")
print(underline+"Underline"+ent)
Vielleicht ist da nen bug in colorama oder man muss es anders "starten", keine Ahnung. Ich nutze ein kurzes "cls" in allen Skripten, wo ich colorama einsetze und es klappt problemlos.

Gruß
Benutzeravatar
__blackjack__
User
Beiträge: 13007
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@August1328: Die Dokumentation sagt ziemlich deutlich das man `colorama.init()` aufrufen muss. Ich meine wo ist der Sinn ein Cross-Plattform-Modul zu verwenden wenn man dann ein systemsspezifisches externes Programm aufruft. Und das dann auch noch mit `os.system()`. 🙄
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
August1328
User
Beiträge: 65
Registriert: Samstag 27. Februar 2021, 12:18

:lol: ich wusste, daß ich wieder ne Watschn abkriege. Das init() habe ich übersehen, aber das kommt davon wenn man die Doku nur überfliegt. Aber Kobra23759 hat´s auch nicht genutzt...

Dann werde ich auch das mal ändern und kann os.system raus werfen.

Danke
Kobra23759
User
Beiträge: 61
Registriert: Donnerstag 9. April 2020, 18:47

danke an alle
Benutzeravatar
DeaD_EyE
User
Beiträge: 1012
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Schau dir das mal an: https://github.com/Textualize/rich

Am besten gefällt mir das:

Code: Alles auswählen

console.print("Where there is a [bold cyan]Will[/bold cyan] there [u]is[/u] a [i]way[/i].")
Die Bibliothek ist so erfolgreich, dass der Maintainer ein Unternehmen drumherum gegründet hat.
Eine weitere Python-Erfolgsgeschichte. Das muss man sich erst mal vorstellen.
Da geht es nur um Text im Terminal und das im Jahr 2022. Die Terminal-Zeiten sind noch lange nicht vorbei.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Kobra23759
User
Beiträge: 61
Registriert: Donnerstag 9. April 2020, 18:47

alle dead_eye,
welche Bibliothek muß ich für console.print noch gleich Laden
karolus
User
Beiträge: 140
Registriert: Samstag 22. August 2009, 22:34

Kobra23759 hat geschrieben: Mittwoch 5. Oktober 2022, 07:36 alle dead_eye,
welche Bibliothek muß ich für console.print noch gleich Laden
RTFM ← https://github.com/Textualize/rich
Antworten