c03xp 发表于 2020-9-7 09:01

python在命令行打印彩色文字

本帖最后由 c03xp 于 2020-9-7 13:58 编辑

自己研究的,不知道以前有没有人发过。比较实用,使用时把echo函数复制粘贴一下就行了
#!/usr/bin/python
# -*- coding: UTF-8 -*-


import ctypes
def echo(*o,c=7,sep=' ',end='\n'):k=ctypes.WinDLL("Kernel32.dll");h=k.GetStdHandle(-11);f=k.SetConsoleTextAttribute;f(h,c);print(*o,sep=sep,end=end,flush=True);f(h,7)


'''下面三行不是必须的,加上它会使程序更加严谨'''
import signal
def keyboard_handler(signum, frame):k=ctypes.WinDLL("Kernel32.dll");h=k.GetStdHandle(-11);f=k.SetConsoleTextAttribute;f(h,7);exit(0)
signal.signal(signal.SIGINT, keyboard_handler)
'''
-参数c    高8位:背景色   低8位:前景色   (8421-高红绿蓝)
'''
def test():
    echo("",c=10,end=" ")
    echo("echo函数只在windows命令行下有效")
    echo("",c=9,end=" ")
    echo("echo函数在PowerShell下会改变蓝色背景")
    echo("",c=13,end="不支持flush=False;file参数只支持stdout,若要写入文件,可使用原生print函数\n")
    echo("",c=12,end="可以调用GetConsoleScreenBufferInfo完善echo函数\n\n")
    echo(["打","印","列","表"],c=14)
    echo("顺","序","打","印",sep=",",c=9)
    echo("黄底绿字",c=0xE2)

   
   
if __name__ == '__main__':
    test()

i傻墩儿 发表于 2020-9-7 09:16

大佬大佬学会了

zsjalive 发表于 2020-9-7 09:17

这个可以,学习了,下次在项目中试一下

sssr 发表于 2020-9-7 09:20

这个厉害

c03xp 发表于 2020-9-7 09:24

谢谢支持,互相学习

cj13888 发表于 2020-9-7 09:27

值得一试,谢谢分享

勇敢南山 发表于 2020-9-7 09:29

厉害厉害,感谢分享

Ricky_Xiao 发表于 2020-9-7 09:42

大佬,厉害

王星星 发表于 2020-9-7 09:50

strive_w 发表于 2020-9-7 10:27

谢谢分享,谢谢分享
页: [1] 2
查看完整版本: python在命令行打印彩色文字