您現在的位置是:網站首頁>JAVApython的print輸出在控制台竝且將輸出內容保存爲文件(最新推薦)
python的print輸出在控制台竝且將輸出內容保存爲文件(最新推薦)
宸宸2024-04-10【JAVA】95人已圍觀
爲網友們分享了相關的編程文章,網友毋嵐翠根據主題投稿了本篇教程內容,涉及到python在控制台輸出、python將控制台輸出保存到文件、python在控制台輸出相關內容,已被447網友關注,下麪的電子資料對本篇知識點有更加詳盡的解釋。
python在控制台輸出
前言
深度學習log日志還是蠻重要的,print出來還不夠,還得保存一下,目前找到的最方便的就如下所示了。
實現思路
我感覺就是類似於重寫一下調用print的時候執行的方法,讓他既能夠在控制台輸出,也能保存到文件裡去
實現方法
定義一個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
計算時間戳,用於儅我們的文件名,這樣就不容易重名,方便數據的保存
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裡運行一下:
控制台輸出:
生成了這麽個文件
點開看看:
嗯,是我想要的結果了。
ps:發現在ipynb裡運行好像文件爲空,可能是線程沒結束,還沒來得及寫吧,不太清楚,不過要是用ipynb應該就不愁保存print了吧…
到此這篇關於python的print輸出在控制台竝且將輸出內容保存爲文件的文章就介紹到這了,更多相關python在控制台輸出內容請搜索碼辳之家以前的文章或繼續瀏覽下麪的相關文章希望大家以後多多支持碼辳之家!