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

python中屏蔽輸出示例詳解

 更新時(shí)間:2024年05月29日 14:49:41   作者:JHW5981  
python中屏蔽輸出包含屏蔽標(biāo)準(zhǔn)輸出(比如打印出來(lái)的內(nèi)容)、屏蔽標(biāo)準(zhǔn)錯(cuò)誤(錯(cuò)誤信息)還有屏蔽logging信息等,這篇文章主要介紹了python中屏蔽輸出,需要的朋友可以參考下

python中屏蔽輸出包含屏蔽標(biāo)準(zhǔn)輸出(比如打印出來(lái)的內(nèi)容)、屏蔽標(biāo)準(zhǔn)錯(cuò)誤(錯(cuò)誤信息)還有屏蔽logging信息等。

屏蔽標(biāo)準(zhǔn)輸出

import contextlib
import os
with open(os.devnull, "w") as devnull:
    with contextlib.redirect_stdout(devnull):
        print("Hello, World!")

運(yùn)行上面的代碼會(huì)發(fā)現(xiàn),沒(méi)有任何輸出,因?yàn)閌redirect_stdout`表示將標(biāo)準(zhǔn)輸出的內(nèi)容給定義到devnull去了,`os.devnull`是一個(gè)特殊的文件路徑,在Unix-like系統(tǒng)上通常是`/dev/null`,在Windows上是`NUL`。它的作用是丟棄所有寫(xiě)入其中的數(shù)據(jù)。

屏蔽標(biāo)準(zhǔn)錯(cuò)誤

屏蔽標(biāo)準(zhǔn)錯(cuò)誤只需要把上面代碼中的`stdout`改成`stderr`就好了。

可以看到屏蔽標(biāo)準(zhǔn)錯(cuò)誤不會(huì)屏蔽標(biāo)準(zhǔn)輸出,但是屏蔽標(biāo)準(zhǔn)輸出不是屏蔽異常,

異常該顯示還顯示,屏蔽異常的話(huà),就目前我了解只有用try-except了。

上面的是正常的,將輸出寫(xiě)到標(biāo)準(zhǔn)錯(cuò)誤里是可以屏蔽的,但是好像很少有人會(huì)這么寫(xiě)吧。。。

而且`print("xxx" file=sys.stdout)`和`print("xxx", file=sys.stderr)`貌似沒(méi)有什么區(qū)別,都將“xxx”打印到控制臺(tái),關(guān)于此,chatgpt是這樣解釋的

反正我是覺(jué)得這個(gè)屏蔽標(biāo)準(zhǔn)錯(cuò)誤的用法有點(diǎn)子雞肋。

屏蔽logging信息

屏蔽logging也是很常用的,上面的方法對(duì)logging信息沒(méi)有用,需要logging本身的設(shè)置

將logging的handler直接置空還是有l(wèi)ogging信息被打印出來(lái),原因是,代碼中,即使你清除了 `logger.handlers` 列表,`logging `模塊可能會(huì)自動(dòng)添加一個(gè)默認(rèn)的處理器來(lái)處理日志消息。默認(rèn)情況下,日志消息等級(jí)為 `WARNING `及以上的消息會(huì)被顯示在控制臺(tái)上。這解釋了為什么你仍然看到 `WARNING `及以上級(jí)別的消息。

如果要完全屏蔽到logging的信息,需要自己寫(xiě)個(gè)handler,加進(jìn)去

這下啥都沒(méi)有了。當(dāng)然也可以在`emit`這個(gè)函數(shù)里面對(duì)record進(jìn)行一些處理,其中record有哪些屬性可用呢?這里給出一個(gè)可以查record屬性的代碼示例

import logging
class NullHandler(logging.Handler):
    def emit(self, record):
        # 獲取所有屬性并打印
        for attr in dir(record):
            if not attr.startswith('__'):
                print(f'{attr}: {getattr(record, attr)}')
        pass
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger()
logger.handlers = []
logger.addHandler(NullHandler())
logger.debug("This debug message will be discarded.")

到此這篇關(guān)于python中屏蔽輸出的文章就介紹到這了,更多相關(guān)python屏蔽輸出內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python變量賦值機(jī)制踩坑記錄

    python變量賦值機(jī)制踩坑記錄

    這篇文章主要介紹了python變量賦值機(jī)制踩坑記錄,我們都知道python有深拷貝和淺拷貝,但變量賦值又是什么機(jī)制呢?這是個(gè)容易被忽略卻又極易踩坑的點(diǎn),下面我們來(lái)一探究竟,需要的朋友可以參考一下
    2022-02-02
  • Python詳細(xì)講解圖像處理的而兩種庫(kù)OpenCV和Pillow

    Python詳細(xì)講解圖像處理的而兩種庫(kù)OpenCV和Pillow

    這篇文章介紹了Python使用OpenCV與Pillow分別進(jìn)行圖像處理的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • 使用pandas實(shí)現(xiàn)連續(xù)數(shù)據(jù)的離散化處理方式(分箱操作)

    使用pandas實(shí)現(xiàn)連續(xù)數(shù)據(jù)的離散化處理方式(分箱操作)

    今天小編就為大家分享一篇使用pandas實(shí)現(xiàn)連續(xù)數(shù)據(jù)的離散化處理方式(分箱操作),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • pyspark自定義UDAF函數(shù)調(diào)用報(bào)錯(cuò)問(wèn)題解決

    pyspark自定義UDAF函數(shù)調(diào)用報(bào)錯(cuò)問(wèn)題解決

    這篇文章主要為大家介紹了pyspark自定義UDAF函數(shù)調(diào)用報(bào)錯(cuò)問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • pytorch 使用半精度模型部署的操作

    pytorch 使用半精度模型部署的操作

    這篇文章主要介紹了pytorch 使用半精度模型部署的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python網(wǎng)絡(luò)爬蟲(chóng)項(xiàng)目:內(nèi)容提取器的定義

    Python網(wǎng)絡(luò)爬蟲(chóng)項(xiàng)目:內(nèi)容提取器的定義

    本篇文章主要介紹了Python網(wǎng)絡(luò)爬蟲(chóng)項(xiàng)目,這能有效的節(jié)省程序員的時(shí)間,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2016-10-10
  • Python創(chuàng)建7種不同的文件格式的方法總結(jié)

    Python創(chuàng)建7種不同的文件格式的方法總結(jié)

    今天的這篇文章呢,小編來(lái)介紹一下如何通過(guò)Python來(lái)創(chuàng)建各種形式的文件,這里包括了:文本文件、CSV文件、Excel文件、壓縮文件、XML文件、JSON文件和PDF文件,需要的可以參考一下
    2023-01-01
  • Python制作Windows按鍵通知腳本

    Python制作Windows按鍵通知腳本

    對(duì)于鍵盤(pán)沒(méi)有背光燈的同學(xué)而言,切換大小寫(xiě)或控制Num鍵開(kāi)關(guān)的時(shí)候沒(méi)有提示,經(jīng)常需要試探性地輸入一些字符來(lái)判斷開(kāi)關(guān)是否打開(kāi),體驗(yàn)非常糟糕。所以本文就來(lái)用Python做一個(gè)Windows按鍵通知腳本,需要的可以參考一下
    2022-11-11
  • Python使用pathlib進(jìn)行文件系統(tǒng)操作

    Python使用pathlib進(jìn)行文件系統(tǒng)操作

    pathlib?是?Python?的一個(gè)標(biāo)準(zhǔn)庫(kù),它提供了一個(gè)面向?qū)ο蟮奈募到y(tǒng)路徑操作接口,本文主要介紹了Python使用pathlib進(jìn)行文件系統(tǒng)操作的相關(guān)知識(shí),有需要的可以了解下
    2024-11-11
  • Python中列出目錄中的文件的五種方法小結(jié)

    Python中列出目錄中的文件的五種方法小結(jié)

    本文主要介紹了Python中列出目錄中的文件的五種方法小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02

最新評(píng)論