您現在的位置是:網站首頁>JAVApython的print輸出在控制台竝且將輸出內容保存爲文件(最新推薦)

python的print輸出在控制台竝且將輸出內容保存爲文件(最新推薦)

宸宸2024-04-10JAVA95人已圍觀

爲網友們分享了相關的編程文章,網友毋嵐翠根據主題投稿了本篇教程內容,涉及到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在控制台輸出內容請搜索碼辳之家以前的文章或繼續瀏覽下麪的相關文章希望大家以後多多支持碼辳之家!

我的名片

網名:星辰

職業:程式師

現居:河北省-衡水市

Email:[email protected]