欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python在cmd上打印彩色文字實(shí)現(xiàn)過程詳解

系統(tǒng) 1608 0

前言

在Windows上編寫python程序時,有時候需要對輸出的文字顏色進(jìn)行設(shè)置,特別是日志顯示,不同級別的日志設(shè)置不同的顏色進(jìn)行展示可以直觀查看。本文主要描述通過ctypes.windll.kernel32調(diào)用GetStdHandle()和SetConsoleTextAttribute()兩個API實(shí)現(xiàn)來實(shí)現(xiàn)Windows控制臺的彩色背景及彩色文字。

基本概念描述

首先分別介紹GetStdHandle()和SetConsoleTextAttribute()這兩個API。

(1) GetStdHandle()的作用是獲取輸入、輸出/錯誤的屏幕緩沖區(qū)的句柄。函數(shù)聲明如下:

            
HANDLE GetStdHandle(
     DWORD nStdHandle 
   );
          

其參數(shù)nStdHandle的值為下面幾種類型的一種:

            
STD_INPUT_HANDLE 標(biāo)準(zhǔn)輸入的句柄
STD_OUTPUT_HANDLE 標(biāo)準(zhǔn)輸出的句柄
STD_ERROR_HANDLE 標(biāo)準(zhǔn)錯誤的句柄
          

GetStdHandle()返回標(biāo)準(zhǔn)的輸入、輸出或錯誤的設(shè)備的句柄,也就是獲得輸入、輸出/錯誤的屏幕緩沖區(qū)的句柄。

(2)SetConsoleTextAttribute() 的作用是在控制臺中設(shè)置輸入或輸出文本的文本顏色和背景顏色。其函數(shù)聲明如下:

            
 BOOL SetConsoleTextAttribute(
   HANDLE hConsoleOutput, // console 屏幕緩沖區(qū)的句柄
   WORD wAttributes    // 文本及背景的顏色
 );
          

文本與背景顏色設(shè)置可以參考Windows上"color /?"命令的說明。顏色屬性由兩個十六進(jìn)制數(shù)字指定 -- 第一個為背景,第二個則為前景。每個數(shù)字可以為以下任何值之一,如下

            
= 黑色    8 = 灰色
= 藍(lán)色    9 = 淡藍(lán)色
= 綠色    A = 淡綠色
= 淺綠色   B = 淡淺綠色
= 紅色    C = 淡紅色
= 紫色    D = 淡紫色
= 黃色    E = 淡黃色
= 白色    F = 亮白色
          

如果函數(shù)設(shè)置文本及背景顏色成功,則返回非0。如果設(shè)置失敗返回0。

prt_cmd_color.py參考代碼如下:

            
#-*- coding:utf-8 -*-#
#filename: prt_cmd_color.py
import ctypes,sys 
STD_INPUT_HANDLE = -10
STD_OUTPUT_HANDLE = -11
STD_ERROR_HANDLE = -12 
#字體顏色定義 text colors
FOREGROUND_BLUE = 0x09 # blue.
FOREGROUND_GREEN = 0x0a # green.
FOREGROUND_RED = 0x0c # red.
FOREGROUND_YELLOW = 0x0e # yellow. 
# 背景顏色定義 background colors
BACKGROUND_YELLOW = 0xe0 # yellow. 
# get handle
std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
 
def set_cmd_text_color(color, handle=std_out_handle):
  Bool = ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)
  return Bool 
#reset white
def resetColor():
  set_cmd_text_color(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE) 
#green
def printGreen(mess):
  set_cmd_text_color(FOREGROUND_GREEN)
  sys.stdout.write(mess + '\n')
  resetColor()
#red
def printRed(mess):
  set_cmd_text_color(FOREGROUND_RED)
  sys.stdout.write(mess + '\n')
  resetColor() 
#yellow
def printYellow(mess):
  set_cmd_text_color(FOREGROUND_YELLOW)
  sys.stdout.write(mess + '\n')
  resetColor()
#white bkground and black text
def printYellowRed(mess):
  set_cmd_text_color(BACKGROUND_YELLOW | FOREGROUND_RED)
  sys.stdout.write(mess + '\n')
  resetColor() 
if __name__ == '__main__':
  printGreen('printGreen:Gree Color Text')
  printRed('printRed:Red Color Text')
  printYellow('printYellow:Yellow Color Text')
          

輸出展示:

說明:如果需要增加不同前景色或者背景色的組合輸出,可以參考代碼和上述顏色編號增加。

使用實(shí)例

1、將上述prt_cmd_color.py文件放在與待執(zhí)行腳本ping_ip.py同一目錄下。或者通過 sys.path.append()將prt_cmd_color.py 文件所在的目錄添加到搜索路徑下。

2、ping_ip.py腳本中 import prt_cmd_color 導(dǎo)入模塊或者執(zhí)行 from prt_cmd_color import printGreen, printRed 導(dǎo)入指定函數(shù)。

3、ping_ip.py代碼內(nèi)容如下:

            
import os, sys
sys.path.append('d:\temp')
from prt_cmd_color import printGreen, printRed
for ip in ['192.168.1.104', '192.168.1.105']:
  ret = os.system('ping -n 2 -w 3 %s > nul' % (ip,))
  if ret == 0:
    printGreen("%s success" % (ip,))
  else:
    printRed("%s fail" % (ip,))
          

4、執(zhí)行結(jié)果如下圖所示。命令執(zhí)行成功,以綠色顯示提示信息,執(zhí)行失敗以紅色顯示提示信息。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本高清com | 蜜桃av一区二区三区 | www色网站| 欧美精品久久久久久久免费观看 | 黄色一级视频网站 | 日韩欧美在线视频不卡免费视频 | 特级全黄 | 亚洲va国产va | 日本美女一区二区 | 久久天堂av | 亚洲福利视频网 | 色婷婷五 | 2021国产成人综合亚洲精品 | 免费一级毛片不卡在线播放 | 亚洲欧美一级久久精品 | 91亚洲精品丁香在线观看 | 免费一看一级毛片 | 国产激情在线观看 | 色婷婷视频在线观看 | 色综合激情 | 狠狠色噜噜狠狠狠97影音先锋 | 亚洲精品乱码久久久久久花季 | 亚洲网站在线免费观看 | 精品国产色 | 奇米网色| 久久男人的天堂 | 一级毛片看真人在线视频 | 日本黄色性视频 | 欧美一区视频 | 免费a级毛片| 久久日本精品国产精品白 | 成人嗯啊视频在线观看 | 嫩草影院在线免费观看 | 国产剧情一区二区三区 | 成人黄色一级视频 | 五月天色丁香 | 香蕉成人啪国产精品视频综合网 | 黄色小视频在线看 | 久久草在线视频国产一 | 欧美成人黑人视频免费观看 | 91看片在线 |