Wie drucke ich fetten Text in Python?
Beispielsweise:
print "hello"
Was soll ich tun, damit der Text „Hallo“ fett angezeigt wird?
Wie drucke ich fetten Text in Python?
Beispielsweise:
print "hello"
Was soll ich tun, damit der Text „Hallo“ fett angezeigt wird?
Antworten:
class color:
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'
print(color.BOLD + 'Hello World !' + color.END)
Benutze das:
print '\033[1m' + 'Hello'
Und um wieder normal zu werden:
print '\033[0m'
Diese Seite ist eine gute Referenz zum Drucken in Farben und Schriftstärken. Gehen Sie zu dem Abschnitt "Grafikmodus einstellen:".
Beachten Sie, dass dies nicht auf allen Betriebssystemen funktioniert, Sie jedoch keine Module benötigen.
Hierfür können Sie termcolor verwenden:
sudo pip install termcolor
So drucken Sie eine farbige Fettschrift:
from termcolor import colored
print(colored('Hello', 'green', attrs=['bold']))
Weitere Informationen finden Sie unter Termcolor auf PyPi .
simple-colours ist ein weiteres Paket mit ähnlicher Syntax:
from simple_colors import *
print(green('Hello', ['bold'])
Das Äquivalent in Colorado kann sein Style.BRIGHT.
In der direkten Computerprogrammierung gibt es kein "Drucken von fettem Text". Lassen Sie uns ein wenig sichern und verstehen, dass Ihr Text eine Folge von Bytes ist und Bytes nur Bündel von Bits sind. Für den Computer ist hier Ihr "Hallo" -Text in Binärform .
0110100001100101011011000110110001101111
Jede Eins oder Null ist ein bisschen. Alle acht Bits ist ein Byte. Jedes Byte ist in einer Zeichenfolge wie in Python 2.x ein Buchstaben- / Zahlen- / Interpunktionselement (als Zeichen bezeichnet). Also zum Beispiel:
01101000 01100101 01101100 01101100 01101111
h e l l o
Der Computer übersetzt diese Bits in Buchstaben, aber in einer herkömmlichen Zeichenfolge (ASCII-Zeichenfolge genannt) gibt es nichts, was auf fetten Text hinweist. In einer Unicode-Zeichenfolge, die etwas anders funktioniert, kann der Computer Zeichen in internationaler Sprache wie chinesische unterstützen, aber auch hier gibt es nichts zu sagen, dass einige Texte fett und andere nicht fett sind. Es gibt auch keine explizite Schriftart, Textgröße usw.
Beim Drucken von HTML geben Sie immer noch eine Zeichenfolge aus. Das Computerprogramm, das diese Zeichenfolge liest (ein Webbrowser), ist jedoch so programmiert, dass Text wie folgt interpretiert wird this is <b>bold</b>: "Dies ist fett " wenn es Ihre Buchstabenfolge in Pixel auf dem Bildschirm konvertiert. Wenn der gesamte Text WYSIWYG wäre, würde der Bedarf an HTML selbst verringert - Sie würden einfach Text in Ihrem Editor auswählen und fett schreiben, anstatt den HTML-Code einzugeben.
Andere Programme verwenden andere Systeme - viele Antworten erklärten ein völlig anderes System zum Drucken von fettem Text auf Terminals. Ich bin froh, dass Sie herausgefunden haben, wie Sie das tun, was Sie tun möchten, aber irgendwann möchten Sie verstehen, wie Zeichenfolgen und Speicher funktionieren.
Schauen Sie sich colorama an . Es hilft nicht unbedingt beim Fettdruck ... aber Sie können sowohl unter Windows als auch unter Linux eine kolorierte Ausgabe durchführen und die Helligkeit steuern:
from colorama import *
init(autoreset=True)
print Fore.RED + 'some red text'
print Style.BRIGHT + Fore.RED + 'some bright red text'
In Python gibt es ein sehr nützliches Modul zum Formatieren von Text (fett, unterstrichen, Farben ..). Es verwendet curseslib, ist aber sehr einfach zu bedienen.
Ein Beispiel:
from terminal import render
print render('%(BG_YELLOW)s%(RED)s%(BOLD)sHey this is a test%(NORMAL)s')
print render('%(BG_GREEN)s%(RED)s%(UNDERLINE)sAnother test%(NORMAL)s')
Ich habe ein einfaches Modul namens colours.py geschrieben , um dies etwas pythonischer zu gestalten:
import colors
with colors.pretty_output(colors.BOLD, colors.FG_RED) as out:
out.write("This is a bold red text")
with colors.pretty_output(colors.BG_GREEN) as out:
out.write("This output have a green background but you " +
colors.BOLD + colors.FG_RED + "can" + colors.END + " mix styles")
ImportError: No module named terminal ImportError: No module named render Eigentlich ist dies die einzige Seite, die ich über das "Terminal" -Modul finden konnte. Bitte erläutern Sie.
terminalModul, aber sie haben die Seite umgeleitet. Hier ist der von Google zwischengespeicherte Code .
print '\033[1m Your Name \033[0m'
\ 033 [1m ist der Unicode für Fettdruck im Terminal \ 033 [0m ist der Unicode für das Beenden des bearbeiteten Textes und das Zurücksetzen des Standardtextformats !!!!!
Wenn Sie \ 033 [0m nicht verwenden, wird der gesamte kommende Text des Terminals fett gedruckt !!!!!!!!!
Installieren Sie das termcolorModul
sudo pip install termcolor
und versuchen Sie dies für farbigen Text
from termcolor import colored
print colored('Hello', 'green')
oder dies für fetten Text:
from termcolor import colored
print colored('Hello', attrs=['bold'])
In Python 3 können Sie alternativ cprintals Ersatz für das integrierte printElement den optionalen zweiten Parameter für Farben oder den attrsParameter für Fettdruck (und andere Attribute wie underline) zusätzlich zu den normal benannten printArgumenten wie fileoder verwenden end.
import sys
from termcolor import cprint
cprint('Hello', 'green', attrs=['bold'], file=sys.stderr)
Vollständige Offenlegung, diese Antwort basiert stark auf Olu Smiths Antwort und war als Bearbeitung gedacht , was das Rauschen auf dieser Seite erheblich reduziert hätte, aber aufgrund des fehlgeleiteten Konzepts einiger Rezensenten, was eine Bearbeitung sein soll, bin ich jetzt gezwungen um dies zu einer separaten Antwort zu machen.
Angenommen, Sie meinen wirklich "Drucken" auf einem echten Druckterminal:
>>> text = 'foo bar\r\noof\trab\r\n'
>>> ''.join(s if i & 1 else (s + '\b' * len(s)) * 2 + s
... for i, s in enumerate(re.split(r'(\s+)', text)))
'foo\x08\x08\x08foo\x08\x08\x08foo bar\x08\x08\x08bar\x08\x08\x08bar\r\noof\x08\
x08\x08oof\x08\x08\x08oof\trab\x08\x08\x08rab\x08\x08\x08rab\r\n'
Senden Sie das einfach an Ihre stdout.
Einige Terminals ermöglichen das Drucken von farbigem Text. Einige Farben sehen aus, als wären sie "fett". Versuchen:
print ('\033[1;37mciao!')
Die Sequenz '\ 033 [1; 37m' veranlasst einige Terminals, mit dem Drucken in "hellem Weiß" zu beginnen, das möglicherweise etwas wie fettgedrucktes Weiß aussieht. '\ 033 [0; 0m' schaltet es aus.
In Python 3 können Sie colorama - simple_colors verwenden: (Seite Simple Colors: https://pypi.org/project/simple-colors/ - gehen Sie zur Überschrift 'Verwendung'.) Bevor Sie die folgenden Schritte ausführen , stellen Sie sicher, dass Sie pip install simple_colours.
from simple_colors import *
print(green('hello', 'bold'))
pip install simple_colors