python 在控制台输出Color
本帖最后由 Cool_Breeze 于 2020-12-19 08:38 编辑# coding=utf-8
# SetConsoleTextAttribute 函数是靠一个字节的低四位来控制前景色,高四位来控制背景色。(0b00000000 - 0b11111111)
# H 开头高亮
import ctypes, sys
class CmdColor(object):
_STD_INPUT_HANDLE = -10
_STD_OUTPUT_HANDLE = -11
_STD_ERROR_HANDLE = -12
F_BLACK = 0x00
F_BLUE = 0x01
F_GREEN = 0x02
F_SKYBLUE = 0x03
F_RED = 0x04
F_VIOLET = 0x05
F_YELLOW = 0x06
F_WHITE = 0x07
F_GRAY = 0x08
F_HBLUE = 0x09
F_HGREEN = 0x0A
F_HSKYBLUE = 0x0B
F_HRED = 0x0C
F_HVIOLET = 0x0D
F_HYELLOW = 0x0E
F_HWHITE = 0x0F
B_BLACK = 0x00
B_BLUE = 0x10
B_GREEN = 0x20
B_SKYBLUE = 0x30
B_RED = 0x40
B_VIOLET = 0x50
B_YELLOW = 0x60
B_WHITE = 0x70
B_GRAY = 0x80
B_HBLUE = 0x90
B_HGREEN = 0xA0
B_HSKYBLUE = 0xB0
B_HRED = 0xC0
B_HVIOLET = 0xD0
B_HYELLOW = 0xE0
B_HWHITE = 0xF0
def __init__(self):
self._handle = ctypes.windll.kernel32.GetStdHandle(
CmdColor._STD_OUTPUT_HANDLE)
def setColor(self, color):
ctypes.windll.kernel32.SetConsoleTextAttribute(self._handle, color)
def reSetColor(self):
self.setColor(self.F_WHITE)
def print(self,color, mess):
self.setColor(color)
sys.stdout.write(mess)
sys.stdout.flush()
self.reSetColor()
if __name__ == '__main__':
color = CmdColor()
# color.setColor(color.F_HYELLOW | color.B_BLACK)
# print('Cool_Breeze')
# print('Cool_Breeze')
# color.reSetColor()
# 需要手动添加换行符
# color.print((color.F_HSKYBLUE | color.B_GRAY), 'Cool_Breeze\n')
# color.print(0x8B, 'Cool_Breeze\n')
for n in range(1,256,1):
color.print(n, f'{n:<4} hex:{bin(n):<12}')
if n%5 == 0 :print()
结果图:
haidibingjing 发表于 2020-12-19 16:52
\033[1;31;40m ***********\033[0m
这样设置的在pycharm中运行时是有颜色的 但是生成exe文件执行的 ...
这个是在Linux系统上面才会打印彩色! windows上面不会! Cool_Breeze 发表于 2020-12-19 12:31
你说的太模糊! 我搞不清楚!...
\033[1;31;40m ***********\033[0m
这样设置的在pycharm中运行时是有颜色的 但是生成exe文件执行的时候就没有颜色了 color.print(n, f'{n:<4} bin:{bin(n):<12}')
截图 hex 忘改了 应该是 bin 以前一直想着彩色打印,但没弄过,看到这帖子果断点进来了,很实用。 请教个问题 py文件转成的exe运行的时候怎么改变颜色呢? AttributeError: module 'ctypes' has no attribute 'windll' 啊哦😯 千年恨 发表于 2020-12-19 10:02
AttributeError: module 'ctypes' has no attribute 'windll' 啊哦😯
你的python版本多少?我是3.7 haidibingjing 发表于 2020-12-19 10:00
请教个问题 py文件转成的exe运行的时候怎么改变颜色呢?
代码写的啥,转成exe 也不会改变啊! Cool_Breeze 发表于 2020-12-19 10:10
代码写的啥,转成exe 也不会改变啊!
就是用哪个模块或者代码可以再生成exe文件后也可以有颜色 haidibingjing 发表于 2020-12-19 11:34
就是用哪个模块或者代码可以再生成exe文件后也可以有颜色
你说的太模糊! 我搞不清楚!... 一天掌握一点小知识,感谢分享
页:
[1]
2