解决CMD命令行窗口不显示颜色问题python

最近在做一个CMD命令行窗口显示不同颜色的字体的功能时,发现按照网上的方法设置均不生效

1.比如最常见的方法,print("\033[0;30;40m\tHello World\033[0m")

我执行的结果如下:

解决方法如下:需从colorama中导入init

#-*- coding:utf-8 -*-
from colorama import init

init(autoreset=True)

print("\033[0;30;40m\tHello World\033[0m") #黑色 
print("\033[0;31;40m\tHello World\033[0m") #红色
print("\033[0;32;40m\tHello World\033[0m") #绿色
print("\033[0;33;40m\tHello World\033[0m") #黄色
print("\033[0;34;40m\tHello World\033[0m") #蓝色 
print("\033[0;35;40m\tHello World\033[0m") #紫色
print("\033[0;36;40m\tHello World\033[0m") #浅蓝 
print("\033[0;37;40m\tHello World\033[0m") #白色

运行结果:

2.方法二,使用Fore设置颜色

from colorama import init,Fore
init(autoreset=True)
print (Fore.YELLOW + "welcome to python !!")
print ("automatically back to default color again") 
print(Fore.RED+'SCORE: ' + str(100))

运行结果:

3.方法三,使用init_pair,color_pair设置颜色

import curses

stdscr=curses.initscr()

def display_info1(str,x,y,colorpair=1):#x,y是横纵坐标
    #使用指定的colorpair显示文字
    stdscr.addstr(y,x,str,curses.color_pair(colorpair))
    stdscr.refresh()    
    
def display_info2(str,x,y,colorpair=2):#x,y是横纵坐标
    #使用指定的colorpair显示文字
    stdscr.addstr(y,x,str,curses.color_pair(colorpair))
    stdscr.refresh()
    
def get_ch_and_continue():
    #演示press any key to continue
    #设置nodelay为0时变成阻塞式等待
    stdscr.nodelay(0)
    #输入一个字符
    ch=stdscr.getch()
    #重置nodelay,使得控制台可以以非阻塞的方式接受控制台输入,超时1秒
    stdscr.nodelay(1)
    return True

def set_win():
    #控制台设置
    global stdscr
    #使用颜色首先需要调用这个方法
    curses.start_color()
    #文字和背景色设置,设置了两个color pair,分别为1和2
    curses.init_pair(1,curses.COLOR_GREEN,curses.COLOR_BLACK)
    curses.init_pair(2,curses.COLOR_RED,curses.COLOR_BLACK)
    #关闭屏幕回显
    curses.noecho()
    #输入时不需要回车确认
    curses.cbreak()
    #设置nodelay,使得控制台可以以非阻塞的方式接受控制台输入,超时1秒
    stdscr.nodelay(1)
    
def unset_win():
    #恢复控制台默认设置(若不恢复,会导致即使程序结束退出了,控制台仍然是没有回显的)
    curses.nocbreak()
    stdscr.keypad(0)
    curses.echo()
    #结束窗口
    curses.endwin()
    
if __name__=='__main__':
    try:
        set_win()
        display_info1('Hello,curses!',5,5)
        display_info2('Press any key to continue...',0,10)
        get_ch_and_continue()
    except Exception as e:
        raise e
    finally:
        unset_win()
    

运行结果:

另附:python代码实现2048-功能拓展在控制台输出颜色的实例。

  • 12
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值