파이썬에서 굵은 글씨를 어떻게 인쇄합니까?


162

파이썬에서 굵은 글씨를 어떻게 인쇄합니까?

예를 들면 다음과 같습니다.

print "hello"

“hello”라는 텍스트가 굵게 표시되도록하려면 어떻게해야합니까?


2
유닉스에서 터미널 애플리케이션에서 컬러 텍스트 복제 . 답변에 많은 링크가 있습니다. 그 대답은 C로되어 있지만 파이썬으로 쉽게 번역됩니다.
Joe

6
어느 터미널을 사용하고 있습니까? 당신은 유닉스 또는 Windows에 있습니까?
Sjoerd

나는 사파리를 사용하고 있습니다. 파이썬에서 HTML 태그를 사용할 수 있다는 것을 알았습니다.
Jia-Luo

답변:


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

15
나는 당신이 대담하지 않은 방식을 좋아하지만 모든 사용자가 참조하고 볼 수 있도록 전체 클래스를 만들었습니다. 감사합니다.
GreenHawk1220

3
나는 이것을 수업이 아닌 dict로 사용할 것입니다. 감사!
dvlden

6
다음을 인쇄합니다 :[1mHello World ![0m

내 설정 작업 : ubuntu 19.10, python 3.7
Elouan Keryell-Even

굵은 체와 색상을 결합 할 수 있습니까? @Boubakr
alper

62

이것을 사용하십시오 :

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

그리고 다시 정상으로 바꾸려면 :

print '\033[0m'

이 페이지 는 컬러 및 글꼴 무게로 인쇄하기에 좋은 참조 자료입니다. '그래픽 모드 설정'섹션으로 이동하십시오.

그리고 이것은 모든 운영 체제에서 작동하지는 않지만 모듈이 필요하지는 않습니다.


31

termcolor를 사용할 수 있습니다.

 sudo pip install termcolor

컬러 굵은 체를 인쇄하려면

 from termcolor import colored
 print(colored('Hello', 'green', attrs=['bold']))

자세한 정보는 PyPi의 termcolor를 참조하십시오 .

simple-colors 는 비슷한 구문을 가진 또 다른 패키지입니다.

 from simple_colors import *
 print(green('Hello', ['bold'])

콜로라도 의 해당 내용은 수 있습니다 Style.BRIGHT.


8
누군가가 이것을 대담하게 인쇄하는 방법에 대한 실제 질문에 대답하지 않았기 때문에 이것을 다운 투표했다고 생각한다면.
Christian

당신의 권리는 업데이트되었습니다. 저 사람들에 대해 죄송합니다.
Olu Smith

22

일직선 컴퓨터 프로그래밍에서는 "굵은 텍스트 인쇄"와 같은 것은 없습니다. 비트를 백업하고 텍스트가 바이트 문자열이고 바이트가 비트 묶음임을 이해합시다. 컴퓨터에는 여기 "hello"텍스트가 binary로 표시 됩니다.

0110100001100101011011000110110001101111

각각 1 또는 0은 비트입니다. 모든 8 비트는 바이트입니다. 모든 바이트는 Python 2.x와 같은 문자열로 하나의 문자 / 숫자 / 구절 항목 (문자라고 함)입니다. 예를 들어 :

01101000 01100101 01101100 01101100 01101111
h        e        l        l        o

컴퓨터는 이러한 비트를 문자로 변환하지만 전통적인 문자열 (ASCII 문자열이라고 함)에는 굵은 체 텍스트를 나타내는 것이 없습니다. 약간 다르게 작동하는 유니 코드 문자열에서 컴퓨터는 중국어와 같은 국제 언어 문자를 지원할 수 있지만 다시 말하지만 일부 텍스트는 굵게 표시되고 일부 텍스트는 그렇지 않습니다. 명시적인 글꼴, 텍스트 크기 등도 없습니다.

HTML을 인쇄하는 경우 여전히 문자열을 출력합니다. 그러나 해당 문자열 (웹 브라우저)을 읽는 컴퓨터 프로그램 은 문자 문자열을 화면의 픽셀로 변환 할 때 this is <b>bold</b>"이것은 굵은 체 " 와 같은 텍스트를 해석하도록 프로그래밍되어 있습니다. 모든 텍스트가 WYSIWYG 인 경우 HTML 자체의 필요성이 완화됩니다. 편집기에서 텍스트를 선택하고 HTML을 입력하는 대신 굵게 표시하면됩니다.

다른 프로그램은 다른 시스템을 사용합니다. 터미널에 굵은 텍스트를 인쇄하기위한 완전히 다른 시스템에 대한 설명이 많이 있습니다. 원하는 작업을 수행하는 방법을 알게되어 기쁘지만 언젠가는 문자열과 메모리의 작동 방식을 이해하고 싶을 것입니다.


9
이 답변이 보일 수 있습니다으로 만족스럽지으로, 대부분의 제대로 질문에 대한 대답 한 아마 질문으로는 . 그것은 전혀 파이썬 질문이 아니라, 무엇을하든 랜더링 질문입니다.
John Y

8
문제는이 질문에 대한 답변에 관심이있는 모든 사람들이 이진법과 문자열을 나타내는 데 어떻게 사용되는지 이해한다는 것입니다. 우리는 파이썬을 사용하여 텍스트를 굵게 보이게 만드는 방법에 관심이 있습니다. 이 대답은 너무나도 끝이났다.
Trevor

16

이것은 리눅스 / 유닉스를 사용하고 있는지에 달려 있습니다 :

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

단어 text는 대담해야합니다.


13

콜로라도를 확인하십시오 . 굵게 표시하는 데 반드시 도움이되는 것은 아니지만 Windows와 Linux 모두에서 컬러 출력을 수행하고 밝기를 제어 할 수 있습니다.

from colorama import *
init(autoreset=True)
print Fore.RED + 'some red text'
print Style.BRIGHT + Fore.RED + 'some bright red text'

13

파이썬에서 텍스트 (굵게, 밑줄, 색 등)를 포맷 하는 데 매우 유용한 모듈 이 있습니다 . curseslib를 사용 하지만 사용 하기가 매우 간단합니다.

예를 들면 :

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

2
ImportError: No module named terminal ImportError: No module named render 실제로 이것은 "터미널"모듈에 대해 찾을 수있는 유일한 사이트입니다. 정교하게 작성하십시오.
미네랄

위의 링크는 terminal모듈 을 포함하는 데 사용 되었지만 페이지를 리디렉션했습니다. 다음은 Google이 캐시 한 코드 입니다.
Diego Navarro

어쨌든, 나는 ;-) @minerals에서 그것을 확인,이 문제를 해결하기 위해 내 자신의 파이썬 모듈을 만들었습니다
디에고 바로

8
print '\033[1m  Your Name  \033[0m'

\ 033 [1m은 터미널에서 굵게 표시되는 유니 코드입니다. \ 033 [0m은 편집 된 텍스트를 끝내고 기본 텍스트 형식으로 돌아 가기위한 유니 코드입니다 !!!!!!

\ 033 [0m을 사용하지 않으면 다가오는 터미널의 모든 텍스트가 굵게 표시됩니다 !!!!!!!!!


설명을 추가해주세요
Harsha Biyani

2
응답하기 전에 다른 답변을 읽으십시오! 이 질문에는 자세한 설명과 함께 많은 정답이 있습니다. 유용한 것을 추가하고 있지 않습니다.
Mohammad Dehghan

6

termcolor모듈 설치

sudo pip install termcolor

그런 다음 컬러 텍스트로 시도하십시오.

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

또는 굵은 체 텍스트 인 경우 :

from termcolor import colored
print colored('Hello', attrs=['bold'])

파이썬 3에서는 선택적으로 사용할 수있는 cprint드롭 인 교체 내장에 같은 print색상에 대한 선택적인 두 번째 매개 변수 또는로, attrs대담한 (예 : 다른 속성에 대한 매개 변수 underline일반 이름 이외에) print등의 인수 file또는 end.

import sys
from termcolor import cprint
cprint('Hello', 'green', attrs=['bold'], file=sys.stderr)

전체 공개,이 답변은 Olu Smith의 답변을 크게 기반 으로하며 편집 목적으로 작성되었습니다 .이 페이지의 소음을 크게 줄 였지만 일부 리뷰어 의 편집 내용에 대한 잘못된 개념으로 인해 나는 강제로 이것을 별도의 답변으로 만들 수 있습니다.


3

일부 터미널에서는 컬러 텍스트를 인쇄 할 수 있습니다. 일부 색상은 "굵게"표시됩니다. 시험:

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

'\ 033 [1; 37m'시퀀스는 일부 터미널이 굵은 흰색처럼 보일 수있는 "밝은 흰색"으로 인쇄를 시작하게합니다. '\ 033 [0; 0m'은 꺼집니다.


3

가정 당신 정말 A의 평균 "인쇄" 실제 인쇄 터미널 :

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


2

단순 대담성-두 줄 코드

파이썬 3에서는 colorama-simple_colors를 사용할 수 있습니다 : (단순 색상 페이지 : https://pypi.org/project/simple-colors/- '사용법'으로 이동하십시오 pip install simple_colours.)

from simple_colors import *
print(green('hello', 'bold'))

여기에 이미지 설명을 입력하십시오


감사! 먼저 simple_colors를 설치하면됩니다.pip install simple_colors
yzerman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.