python的print輸出在控制臺并且將輸出內(nèi)容保存為文件(最新推薦)
前言
深度學(xué)習(xí)log日志還是蠻重要的,print出來還不夠,還得保存一下,目前找到的最方便的就如下所示了。
實現(xiàn)思路
我感覺就是類似于重寫一下調(diào)用print的時候執(zhí)行的方法,讓他既能夠在控制臺輸出,也能保存到文件里去
實現(xiàn)方法
定義一個Logger類
import sys # 需要引入的包 # 以下為包裝好的 Logger 類的定義 class Logger(object): def __init__(self, filename="Default.log"): self.terminal = sys.stdout self.log = open(filename, "w", encoding="utf-8") # 防止編碼錯誤 def write(self, message): self.terminal.write(message) self.log.write(message) def flush(self): pass
計算時間戳,用于當(dāng)我們的文件名,這樣就不容易重名,方便數(shù)據(jù)的保存
import time t = time.strftime("-%Y%m%d-%H%M%S", time.localtime()) # 時間戳 filename = 'log' + t + '.txt'
緊接著需要實例化對象:
log = Logger(filename)
然后將sys里的東西偷偷換成我們寫的:
print("hi icy hunter")
接下來為所欲為的print就行了
print("hi icy hunter")
完整代碼:
import sys # 需要引入的包 # 以下為包裝好的 Logger 類的定義 class Logger(object): def __init__(self, filename="Default.log"): self.terminal = sys.stdout self.log = open(filename, "w", encoding="utf-8") # 防止編碼錯誤 def write(self, message): self.terminal.write(message) self.log.write(message) def flush(self): pass import time t = time.strftime("-%Y%m%d-%H%M%S", time.localtime()) # 時間戳 filename = 'log' + t + '.txt' log = Logger(filename) sys.stdout = log print("hi icy hunter")
放到.py里運行一下:
控制臺輸出:
生成了這么個文件
點開看看:
嗯,是我想要的結(jié)果了。
ps:發(fā)現(xiàn)在ipynb里運行好像文件為空,可能是線程沒結(jié)束,還沒來得及寫吧,不太清楚,不過要是用ipynb應(yīng)該就不愁保存print了吧…
到此這篇關(guān)于python的print輸出在控制臺并且將輸出內(nèi)容保存為文件的文章就介紹到這了,更多相關(guān)python在控制臺輸出內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python?matplotlib庫繪圖實戰(zhàn)之繪制散點圖
Python有著強大的繪圖庫 matplotlib,該庫集成了大量的繪制函數(shù),可以滿足我們平時絕大多數(shù)的繪圖要求,這篇文章主要給大家介紹了關(guān)于python?matplotlib庫繪圖實戰(zhàn)之繪制散點圖的相關(guān)資料,需要的朋友可以參考下2022-07-07python3的UnicodeDecodeError解決方法
這篇文章主要介紹了python3的UnicodeDecodeError解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12python解決Missing 1 required positional ar
這篇文章主要介紹了python解決Missing 1 required positional argument報錯問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12Python實戰(zhàn)之markdown轉(zhuǎn)pdf(包含公式轉(zhuǎn)換)
由于我們markdown編輯器比較特殊,不是很方便瀏覽,如果轉(zhuǎn)換成pdf的話,就不需要可以的去安裝各種編輯器才可以看了。所以本文將介紹如何通過Python實現(xiàn)md轉(zhuǎn)pdf或者是docx,需要的朋友可以參考一下2021-12-12Python機器學(xué)習(xí)pytorch模型選擇及欠擬合和過擬合詳解
如何發(fā)現(xiàn)可以泛化的模式是機器學(xué)習(xí)的根本問題,將模型在訓(xùn)練數(shù)據(jù)上過擬合得比潛在分布中更接近的現(xiàn)象稱為過擬合,用于對抗過擬合的技術(shù)稱為正則化2021-10-10Python的地形三維可視化Matplotlib和gdal使用實例
這篇文章主要介紹了Python的地形三維可視化Matplotlib和gdal使用實例,具有一定借鑒價值,需要的朋友可以了解下。2017-12-12matplotlib基礎(chǔ)繪圖命令之imshow的使用
這篇文章主要介紹了matplotlib基礎(chǔ)繪圖命令之imshow的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08