Как напечатать жирный текст на Python? - PullRequest
110 голосов
/ 19 января 2012

Как напечатать жирный текст на Python?

Например:

print "hello"

Что мне нужно сделать, чтобы текст «привет» отображался жирным шрифтом?

Ответы [ 10 ]

254 голосов
/ 25 июня 2013
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
42 голосов
/ 02 августа 2012

Используйте это:

print '\033[1m' + 'Hello'

И чтобы вернуться в нормальное состояние:

print '\033[0m'

Эта страница является хорошим справочным материалом для печати в цветах и ​​шрифтах.веса.Перейдите к разделу «Установка графического режима:»

. Обратите внимание, что это работает не во всех операционных системах, но вам не нужны никакие модули.

21 голосов
/ 19 января 2012

В простом компьютерном программировании не существует такой вещи, как «печать жирного текста». Давайте немного вернемся назад и поймем, что ваш текст - это строка байтов, а байты - просто наборы битов. На компьютере, вот ваш «привет» текст, в двоичный файл .

0110100001100101011011000110110001101111

Каждый или ноль - это бит. Каждые восемь бит - это байт. Каждый байт в строке, подобной этой в Python 2.x, представляет собой одну букву / цифру / пунктуацию (называемую символом). Так, например:

01101000 01100101 01101100 01101100 01101111
h        e        l        l        o

Компьютер переводит эти биты в буквы, но в традиционной строке (называемой строкой ASCII) нет ничего для обозначения жирного текста. В строке Unicode, которая работает немного по-другому, компьютер может поддерживать символы международного языка, например китайские, но, опять же, нет ничего, чтобы сказать, что какой-то текст выделен жирным шрифтом, а другой - нет. Там также нет явного шрифта, размера текста и т. Д.

В случае печати HTML вы по-прежнему выводите строку. Но компьютерная программа, считывающая эту строку (веб-браузер), запрограммирована так, чтобы интерпретировать текст, такой как this is <b>bold</b>, как «это жирный », когда она преобразует вашу строку букв в пиксели на экране. Если бы весь текст был WYSIWYG, необходимость в самом HTML была бы уменьшена - вы просто выбрали бы текст в редакторе и выделили его жирным шрифтом вместо того, чтобы печатать HTML.

Другие программы используют разные системы - во многих ответах объясняется совершенно другая система печати жирного текста на терминалах. Я рад, что вы узнали, как делать то, что хотите, но в какой-то момент вам захочется понять, как работают строки и память.

18 голосов
/ 26 ноября 2013
 sudo pip install termcolor


, а затем попробуйте это

 from termcolor import colored
 print colored('Hello', 'green')

и это все для меня

10 голосов
/ 19 января 2012

Выезд Колорама . Это не обязательно помогает с жирным шрифтом ... но вы можете сделать цветной вывод в Windows и Linux и контролировать яркость:

from colorama import *
init(autoreset=True)
print Fore.RED + 'some red text'
print Style.BRIGHT + Fore.RED + 'some bright red text'
10 голосов
/ 19 января 2012

Существует очень полезный модуль для форматирования текста (полужирный, подчеркивание, цвета ...) в Python.Он использует curses lib, но очень прост в использовании.

Пример:

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')

ОБНОВЛЕНО:

Я написал простой модуль с именем colors.py , чтобы сделать это немного более питоническим:

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")
10 голосов
/ 19 января 2012

Это зависит от того, используете ли вы linux / unix:

>>> start = "\033[1m"
>>> end = "\033[0;0m"
>>> print "The" + start + "text" + end + " is bold."
The text is bold.

Слово text должно быть жирным шрифтом.

5 голосов
/ 28 июня 2018
print '\033[1m  Your Name  \033[0m'

\ 033 [1м - это юникод для жирного в терминале \ 033 [0m - это юникод для завершения редактируемого текста и форматирования текста по умолчанию !!!!!

если вы не используете \ 033 [0m, тогда весь следующий текст терминала станет жирным !!!!!!!!!

1 голос
/ 19 января 2012

Предполагая, что вы действительно имеете в виду "печать" на реальном терминале печати:

>>> 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'

Просто отправьте это на ваш stdout.

0 голосов
/ 19 января 2012

Некоторые терминалы позволяют печатать цветной текст. Некоторые цвета выглядят так, будто они «жирные». Попробуйте:

print ('\033[1;37mciao!')

Последовательность '\ 033 [1; 37m' заставляет некоторые терминалы начинать печатать "ярко-белым", который может выглядеть немного как жирный белый. '\ 033 [0; 0m' выключит его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...