How do I print colored output with Python 3?
It is very simple with colorama, just do this:
import coloramafrom colorama import Fore, Styleprint(Fore.BLUE + "Hello World")
And here is the running result in Python3 REPL:
And call this to reset the color settings:
print(Style.RESET_ALL)
To avoid printing an empty line write this:
print(f"{Fore.BLUE}Hello World{Style.RESET_ALL}")
Here's a class of mine I use to color specific output in Python 3 scripts. You could import the class and use like so:from colorprint import ColorPrint as __.print_fail('Error occurred, quitting program')
import sys# Colored printing functions for strings that use universal ANSI escape sequences.# fail: bold red, pass: bold green, warn: bold yellow, # info: bold blue, bold: bold whiteclass ColorPrint: @staticmethod def print_fail(message, end = '\n'): sys.stderr.write('\x1b[1;31m' + message.strip() + '\x1b[0m' + end) @staticmethod def print_pass(message, end = '\n'): sys.stdout.write('\x1b[1;32m' + message.strip() + '\x1b[0m' + end) @staticmethod def print_warn(message, end = '\n'): sys.stderr.write('\x1b[1;33m' + message.strip() + '\x1b[0m' + end) @staticmethod def print_info(message, end = '\n'): sys.stdout.write('\x1b[1;34m' + message.strip() + '\x1b[0m' + end) @staticmethod def print_bold(message, end = '\n'): sys.stdout.write('\x1b[1;37m' + message.strip() + '\x1b[0m' + end)
Put these classes into Color.py file near your test.py file and run test.py.I've tested these classes on Ubuntu Server 16.04 and Linux Mint 18.2 . All classes worked very good except GColor (RGB), that, it is usable in graphical terminal like Linux Mint terminal.Also, you can use these classes like this:
print(Formatting.Italic + ANSI_Compatible.Color(12) + "This is a " + Formatting.Bold + "test" + Formatting.Reset_Bold + "!" + ANSI_Compatible.END + Formatting.Reset)print(Color.B_DarkGray + Color.F_LightBlue + "This is a " + Formatting.Bold + "test" + Formatting.Reset_Bold + "!" + Base.END)
Result:
Note: It's not working on Windows!
File Color.py :
class Base: # Foreground: HEADER = '\033[95m' OKBLUE = '\033[94m' OKGREEN = '\033[92m' WARNING = '\033[93m' FAIL = '\033[91m' # Formatting BOLD = '\033[1m' UNDERLINE = '\033[4m' # End colored text END = '\033[0m' NC ='\x1b[0m' # No Colorclass ANSI_Compatible: END = '\x1b[0m' # If Foreground is False that means color effect on Background def Color(ColorNo, Foreground=True): # 0 - 255 FB_G = 38 # Effect on foreground if Foreground != True: FB_G = 48 # Effect on background return '\x1b[' + str(FB_G) + ';5;' + str(ColorNo) + 'm'class Formatting: Bold = "\x1b[1m" Dim = "\x1b[2m" Italic = "\x1b[3m" Underlined = "\x1b[4m" Blink = "\x1b[5m" Reverse = "\x1b[7m" Hidden = "\x1b[8m" # Reset part Reset = "\x1b[0m" Reset_Bold = "\x1b[21m" Reset_Dim = "\x1b[22m" Reset_Italic = "\x1b[23m" Reset_Underlined = "\x1b[24" Reset_Blink = "\x1b[25m" Reset_Reverse = "\x1b[27m" Reset_Hidden = "\x1b[28m"class GColor: # Gnome supported END = "\x1b[0m" # If Foreground is False that means color effect on Background def RGB(R, G, B, Foreground=True): # R: 0-255 , G: 0-255 , B: 0-255 FB_G = 38 # Effect on foreground if Foreground != True: FB_G = 48 # Effect on background return "\x1b[" + str(FB_G) + ";2;" + str(R) + ";" + str(G) + ";" + str(B) + "m"class Color: # Foreground F_Default = "\x1b[39m" F_Black = "\x1b[30m" F_Red = "\x1b[31m" F_Green = "\x1b[32m" F_Yellow = "\x1b[33m" F_Blue = "\x1b[34m" F_Magenta = "\x1b[35m" F_Cyan = "\x1b[36m" F_LightGray = "\x1b[37m" F_DarkGray = "\x1b[90m" F_LightRed = "\x1b[91m" F_LightGreen = "\x1b[92m" F_LightYellow = "\x1b[93m" F_LightBlue = "\x1b[94m" F_LightMagenta = "\x1b[95m" F_LightCyan = "\x1b[96m" F_White = "\x1b[97m" # Background B_Default = "\x1b[49m" B_Black = "\x1b[40m" B_Red = "\x1b[41m" B_Green = "\x1b[42m" B_Yellow = "\x1b[43m" B_Blue = "\x1b[44m" B_Magenta = "\x1b[45m" B_Cyan = "\x1b[46m" B_LightGray = "\x1b[47m" B_DarkGray = "\x1b[100m" B_LightRed = "\x1b[101m" B_LightGreen = "\x1b[102m" B_LightYellow = "\x1b[103m" B_LightBlue = "\x1b[104m" B_LightMagenta = "\x1b[105m" B_LightCyan = "\x1b[106m" B_White = "\x1b[107m"
And,
File test.py:
from Color import *if __name__ == '__main__': print("Base:") print(Base.FAIL,"This is a test!", Base.END) print("ANSI_Compatible:") print(ANSI_Compatible.Color(120),"This is a test!", ANSI_Compatible.END) print("Formatting:") print(Formatting.Bold,"This is a test!", Formatting.Reset) print("GColor:") # Gnome terminal supported print(GColor.RGB(204,100,145),"This is a test!", GColor.END) print("Color:") print(Color.F_Cyan,"This is a test!",Color.F_Default)
Result:
On Ubuntu Server 16.04
On Linux Mint 18.2