Z jakiego terminala korzystasz? Czy korzystasz z systemu Unix czy Windows?
Sjoerd,
używam safari. Właśnie dowiedziałem się, że mogę używać tagów HTML w Pythonie.
Jia-Luo
Odpowiedzi:
378
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)
Podoba mi się sposób, w jaki nie tylko odważyliście się na pogrubienie, ale stworzyliście dla nich całą klasę, do której mogą się odwoływać i pomóc wszystkim użytkownikom w przeglądaniu. Dziękuję Ci.
GreenHawk1220
3
Użyję tego jako dyktanda, a nie klasy. Dzięki!
dvlden
6
[1mHello World ![0m
Praca nad moją konfiguracją: ubuntu 19.10, python 3.7
Elouan Keryell-Even
Czy mogę łączyć pogrubienie z kolorem? @Boubakr
alper
62
Użyj tego:
print'\033[1m'+'Hello'
Aby wrócić do normalnego trybu:
print'\033[0m'
Ta strona jest dobrym punktem odniesienia do drukowania w kolorach i grubościach czcionek. Przejdź do sekcji „Ustaw tryb graficzny:”
Pamiętaj, że to nie zadziała we wszystkich systemach operacyjnych, ale nie potrzebujesz żadnych modułów.
Gdybym miał zgadywać, ktoś zgodził się na to, ponieważ nie odpowiedział na faktyczne pytanie, jak wydrukować coś pogrubioną czcionką.
Christian
Masz rację, była aktualizacja. Przepraszam za tych facetów.
Olu Smith
22
W prostym programowaniu komputerowym nie ma czegoś takiego jak „drukowanie pogrubionego tekstu”. Cofnijmy się trochę i zrozummy, że twój tekst jest ciągiem bajtów, a bajty to po prostu wiązki bitów. Oto Twój tekst „hello” w postaci binarnej do komputera .
0110100001100101011011000110110001101111
Każdy jeden lub zero to trochę. Każde osiem bitów to bajt. Każdy bajt w łańcuchu takim jak ten w Pythonie 2.x zawiera jedną literę / cyfrę / element interpunkcyjny (nazywany znakiem). Na przykład:
0110100001100101011011000110110001101111
h e l l o
Komputer tłumaczy te bity na litery, ale w tradycyjnym łańcuchu (nazywanym ciągiem ASCII) nie ma nic, co wskazywałoby na pogrubiony tekst. W ciągu znaków Unicode, który działa trochę inaczej, komputer może obsługiwać międzynarodowe znaki językowe, takie jak chińskie, ale znowu nie ma nic do powiedzenia, że część tekstu jest pogrubiona, a część nie. Nie ma również wyraźnej czcionki, rozmiaru tekstu itp.
W przypadku drukowania HTML nadal generujesz ciąg. Ale program komputerowy odczytujący ten ciąg (przeglądarka internetowa) jest zaprogramowany do interpretowania tekstu, takiego this is <b>bold</b>jak „to jest pogrubione ”, kiedy konwertuje ciąg liter na piksele na ekranie. Gdyby cały tekst był WYSIWYG, potrzeba samego HTML byłaby złagodzona - po prostu zaznaczyłbyś tekst w swoim edytorze i pogrubił go zamiast wpisywać HTML.
Inne programy używają innych systemów - wiele odpowiedzi wyjaśniało zupełnie inny system drukowania pogrubionego tekstu na terminalach. Cieszę się, że dowiedziałeś się, jak robić to, co chcesz, ale w pewnym momencie będziesz chciał zrozumieć, jak działają struny i pamięć.
Choć ta odpowiedź może się wydawać niezadowalająca, prawdopodobnie jest to ta, która najlepiej odpowiada na zadane pytanie . To wcale nie jest kwestia Pythona, ale raczej pytanie o to, co robi-renderowanie .
John Y
8
Chodzi o to, że każdy zainteresowany odpowiedzią na to pytanie rozumie binarny i jak jest używany do reprezentowania łańcuchów. Interesuje nas, jak używać Pythona, aby tekst wyglądał na pogrubiony, na co odpowiedź powyżej. Ta odpowiedź jest zbyt pedantyczna.
Trevor
16
To zależy, jeśli używasz linux / unix:
>>> start ="\033[1m">>> end ="\033[0;0m">>>print"The"+ start +"text"+ end +" is bold."The text is bold.
Sprawdź colorama . Niekoniecznie pomaga to w pogrubieniu ... ale możesz tworzyć kolorowe wydruki zarówno w systemie Windows, jak i Linux oraz kontrolować jasność:
from colorama import*
init(autoreset=True)printFore.RED +'some red text'printStyle.BRIGHT +Fore.RED +'some bright red text'
Istnieje bardzo przydatny moduł do formatowania tekstu (pogrubienie, podkreślenie, kolory…) w Pythonie. Używa curseslib, ale jest bardzo prosty w użyciu.
Przykład:
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')
AKTUALIZACJA:
Napisałem prosty moduł o nazwie colors.py, aby uczynić to nieco bardziej pythonowym:
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 terminalImportError: No module named render Właściwie jest to jedyna strona, jaką udało mi się znaleźć na temat modułu "terminal". Proszę rozwinąć.
minerały
Powyższy link zawierał terminalmoduł, ale przekierowują stronę. Oto kod zapisany w pamięci podręcznej Google.
Diego Navarro
W każdym razie stworzyłem własny moduł Pythona, aby rozwiązać ten problem, sprawdź to @minerals ;-)
Diego Navarro
8
print'\033[1m Your Name \033[0m'
\ 033 [1m to Unicode dla pogrubienia w terminalu \ 033 [0m to Unicode dla końca edytowanego tekstu i powrotu do domyślnego formatu tekstu !!!!!
jeśli nie użyjesz \ 033 [0m, to cały nadchodzący tekst terminala będzie pogrubiony !!!!!!!!!
Przeczytaj inną odpowiedź przed udzieleniem odpowiedzi! To pytanie ma wiele poprawnych odpowiedzi z większą liczbą wyjaśnień. Nie dodajesz nic przydatnego.
Mohammad Dehghan
6
Zainstaluj termcolormoduł
sudo pip install termcolor
a następnie spróbuj tego w przypadku kolorowego tekstu
from termcolor import colored
print colored('Hello','green')
lub to dla pogrubionego tekstu:
from termcolor import colored
print colored('Hello', attrs=['bold'])
W Pythonie 3 możesz alternatywnie użyć cprintjako zamiennika wbudowanego print, z opcjonalnym drugim parametrem dla kolorów lub attrsparametrem dla pogrubienia (i innych atrybutów, takich jak underline) oprócz normalnych nazwanych printargumentów, takich jak filelub end.
import sys
from termcolor import cprint
cprint('Hello','green', attrs=['bold'], file=sys.stderr)
Pełne ujawnienie, ta odpowiedź jest w dużej mierze oparta na odpowiedzi Olu Smitha
i była pomyślana jako zmiana , która znacznie zmniejszyłaby szum na tej stronie, ale z powodu błędnej koncepcji niektórych recenzentów na temat tego, czym powinna być zmiana, jestem teraz zmuszony żeby to była osobna odpowiedź.
Zakładając, że naprawdę masz na myśli „drukuj” na prawdziwym terminalu drukującym:
>>> text ='foo bar\r\noof\trab\r\n'>>>''.join(s if i &1else(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'
Odpowiedzi:
źródło
[1mHello World ![0m
Użyj tego:
Aby wrócić do normalnego trybu:
Ta strona jest dobrym punktem odniesienia do drukowania w kolorach i grubościach czcionek. Przejdź do sekcji „Ustaw tryb graficzny:”
Pamiętaj, że to nie zadziała we wszystkich systemach operacyjnych, ale nie potrzebujesz żadnych modułów.
źródło
Możesz do tego użyć termcolor:
Aby wydrukować kolorowe pogrubienie:
Aby uzyskać więcej informacji, zobacz termcolor na PyPi .
simple-colors to kolejny pakiet o podobnej składni:
Odpowiednikiem może być colorama
Style.BRIGHT
.źródło
W prostym programowaniu komputerowym nie ma czegoś takiego jak „drukowanie pogrubionego tekstu”. Cofnijmy się trochę i zrozummy, że twój tekst jest ciągiem bajtów, a bajty to po prostu wiązki bitów. Oto Twój tekst „hello” w postaci binarnej do komputera .
Każdy jeden lub zero to trochę. Każde osiem bitów to bajt. Każdy bajt w łańcuchu takim jak ten w Pythonie 2.x zawiera jedną literę / cyfrę / element interpunkcyjny (nazywany znakiem). Na przykład:
Komputer tłumaczy te bity na litery, ale w tradycyjnym łańcuchu (nazywanym ciągiem ASCII) nie ma nic, co wskazywałoby na pogrubiony tekst. W ciągu znaków Unicode, który działa trochę inaczej, komputer może obsługiwać międzynarodowe znaki językowe, takie jak chińskie, ale znowu nie ma nic do powiedzenia, że część tekstu jest pogrubiona, a część nie. Nie ma również wyraźnej czcionki, rozmiaru tekstu itp.
W przypadku drukowania HTML nadal generujesz ciąg. Ale program komputerowy odczytujący ten ciąg (przeglądarka internetowa) jest zaprogramowany do interpretowania tekstu, takiego
this is <b>bold</b>
jak „to jest pogrubione ”, kiedy konwertuje ciąg liter na piksele na ekranie. Gdyby cały tekst był WYSIWYG, potrzeba samego HTML byłaby złagodzona - po prostu zaznaczyłbyś tekst w swoim edytorze i pogrubił go zamiast wpisywać HTML.Inne programy używają innych systemów - wiele odpowiedzi wyjaśniało zupełnie inny system drukowania pogrubionego tekstu na terminalach. Cieszę się, że dowiedziałeś się, jak robić to, co chcesz, ale w pewnym momencie będziesz chciał zrozumieć, jak działają struny i pamięć.
źródło
To zależy, jeśli używasz linux / unix:
Słowo
text
powinno być pogrubione.źródło
Sprawdź colorama . Niekoniecznie pomaga to w pogrubieniu ... ale możesz tworzyć kolorowe wydruki zarówno w systemie Windows, jak i Linux oraz kontrolować jasność:
źródło
Istnieje bardzo przydatny moduł do formatowania tekstu (pogrubienie, podkreślenie, kolory…) w Pythonie. Używa
curses
lib, ale jest bardzo prosty w użyciu.Przykład:
AKTUALIZACJA:
Napisałem prosty moduł o nazwie colors.py, aby uczynić to nieco bardziej pythonowym:
źródło
ImportError: No module named terminal
ImportError: No module named render
Właściwie jest to jedyna strona, jaką udało mi się znaleźć na temat modułu "terminal". Proszę rozwinąć.terminal
moduł, ale przekierowują stronę. Oto kod zapisany w pamięci podręcznej Google.\ 033 [1m to Unicode dla pogrubienia w terminalu \ 033 [0m to Unicode dla końca edytowanego tekstu i powrotu do domyślnego formatu tekstu !!!!!
jeśli nie użyjesz \ 033 [0m, to cały nadchodzący tekst terminala będzie pogrubiony !!!!!!!!!
źródło
Zainstaluj
termcolor
moduła następnie spróbuj tego w przypadku kolorowego tekstu
lub to dla pogrubionego tekstu:
W Pythonie 3 możesz alternatywnie użyć
cprint
jako zamiennika wbudowanegoprint
, z opcjonalnym drugim parametrem dla kolorów lubattrs
parametrem dla pogrubienia (i innych atrybutów, takich jakunderline
) oprócz normalnych nazwanychprint
argumentów, takich jakfile
lubend
.źródło
Niektóre terminale pozwalają na drukowanie kolorowego tekstu. Niektóre kolory wyglądają jak „odważne”. Próbować:
Sekwencja '\ 033 [1; 37m' sprawia, że niektóre terminale rozpoczynają drukowanie w „jasnej bieli”, która może wyglądać trochę jak pogrubiona biel. '\ 033 [0; 0m' wyłączy go.
źródło
Zakładając, że naprawdę masz na myśli „drukuj” na prawdziwym terminalu drukującym:
Po prostu wyślij to na swój adres
stdout
.źródło
Prosta odwaga - dwuwierszowy kod
W Pythonie 3 możesz użyć colorama - simple_colors: (Strona Simple Colors: https://pypi.org/project/simple-colors/ - przejdź do nagłówka „Użycie”). Zanim wykonasz poniższe czynności, upewnij się, że
pip install simple_colours
.źródło
pip install simple_colors