欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2019年08月07日 09:56:07   作者:BengDou_Do&Think  
這篇文章主要介紹了Python在cmd上打印彩色文字實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

前言

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

基本概念描述

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

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

HANDLE GetStdHandle(
     DWORD nStdHandle 
   );

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

STD_INPUT_HANDLE 標準輸入的句柄
STD_OUTPUT_HANDLE 標準輸出的句柄
STD_ERROR_HANDLE 標準錯誤的句柄

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

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

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

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

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

如果函數(shù)設置文本及背景顏色成功,則返回非0。如果設置失敗返回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')

輸出展示:

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

使用實例

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

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

3、ping_ip.py代碼內容如下:

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í)行結果如下圖所示。命令執(zhí)行成功,以綠色顯示提示信息,執(zhí)行失敗以紅色顯示提示信息。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • python線程池(threadpool)模塊使用筆記詳解

    python線程池(threadpool)模塊使用筆記詳解

    這篇文章主要介紹了python線程池(threadpool)模塊使用筆記詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Python中的zip函數(shù)使用示例

    Python中的zip函數(shù)使用示例

    這篇文章主要介紹了Python中的zip函數(shù)使用示例,Python中的zip函數(shù)不是用來壓縮文件的,而是用來傳入?yún)?shù)返回一個tuple列表的,需要的朋友可以參考下
    2015-01-01
  • python中matplotlib調整圖例位置的方法實例

    python中matplotlib調整圖例位置的方法實例

    在matplotlib中,一般圖例默認是在圖表內部的,如果要放置到圖例外面,需要對坐標進行指定,下面這篇文章主要給大家介紹了關于python中matplotlib調整圖例位置的相關資料,需要的朋友可以參考下
    2022-06-06
  • Python實現(xiàn)連通域標記算法

    Python實現(xiàn)連通域標記算法

    如果把圖像分為前景和背景兩部分,那么連通域就是連通在一起的前景,這種關系對于二值圖像來說比較明顯,下面我們就來了解一下連通域標記算法原理及其Python實現(xiàn)吧
    2023-12-12
  • Python最基本的數(shù)據(jù)類型以及對元組的介紹

    Python最基本的數(shù)據(jù)類型以及對元組的介紹

    這篇文章主要介紹了Python最基本的數(shù)據(jù)類型以及對元組的介紹,來自于IBM官方網(wǎng)站技術文檔,需要的朋友可以參考下
    2015-04-04
  • pyinstaller打包可執(zhí)行程序過程中的常見錯誤解決

    pyinstaller打包可執(zhí)行程序過程中的常見錯誤解決

    這篇文章主要介紹了pyinstaller打包可執(zhí)行程序過程中的常見錯誤解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • TensorFlow的環(huán)境配置與安裝方法

    TensorFlow的環(huán)境配置與安裝方法

    這篇文章主要介紹了TensorFlow的環(huán)境配置與安裝方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • python判斷字符串是否純數(shù)字的方法

    python判斷字符串是否純數(shù)字的方法

    這篇文章主要介紹了python判斷字符串是否純數(shù)字的方法,通過isdigit方法進行判斷,并給出了改進的實例及采用正則判斷的用法,具有一定的借鑒價值,需要的朋友可以參考下
    2014-11-11
  • Python如何安裝mysql數(shù)據(jù)庫模塊

    Python如何安裝mysql數(shù)據(jù)庫模塊

    這篇文章主要介紹了Python如何安裝mysql數(shù)據(jù)庫模塊問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • python創(chuàng)建文件時去掉非法字符的方法

    python創(chuàng)建文件時去掉非法字符的方法

    今天小編就為大家分享一篇python創(chuàng)建文件時去掉非法字符的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10

最新評論