Python 上下文管理器:控制輸出的結果能同時儲存到檔案中
說明
以下這個類print_and_save
可以修飾你的函式或管理上下文,讓你的函式或命令的輸出結果在控制檯輸出的同時,還能儲存為你指定的檔案
免去你是用寫日誌函式的必要
優點:
- 完全不需要修改程式碼對函式或語句直接裝飾或通過上下文管理即可,見下面例子
此內容為個人原創,轉載請註明出處:
import sys
class print_and_save(object):
def __init__(self, filepath):
self.file = open(filepath, 'a')
self.old = sys.stdout # 將當前系統輸出儲存到臨時變數
sys.stdout = self
def __enter__(self):
pass
def __call__(self,func):
def wrapper(*args, **kwargs):
frs = func(*args, **kwargs)
self._exit()
return frs
return wrapper
def write(self, message):
self.old.write(message)
self.file.write(message)
def flush(self):
self.old.flush()
self.file.flush()
def __exit__(self, exc_type, exc_val, exc_tb):
self._exit()
def _exit(self):
self.file.flush()
self.file.close()
sys.stdout = self.old
方法1. 直接裝飾print函式
with print_and_save("a.txt"):
print("directed print")
方法2. 裝飾使用者函式
@print_and_save("a.txt")
def decorated_out():
print("decorator print")
decorated_out()
方法3. 定義使用者函式上下文方式
def contextout(text):
print("context function print is %s" % text)
with print_and_save("a.txt"):
contextout("ok")
結果
# 控制檯
directed print
decorator print
context function print is ok
# 檔案a.txt內容
directed print
decorator print
context function print is ok
此內容為個人原創,轉載請註明出處:
https://blog.csdn.net/u011173298/article/details/88423504
https://www.cnblogs.com/JohnRain/p/10089419.html
相關文章
- linux 將程式終端輸出儲存到檔案中且保留終端輸出Linux
- python:檔案的輸入與輸出Python
- rust 截圖儲存到檔案Rust
- 簡單的mysql儲存過程,輸出結果集MySql儲存過程
- python中如何判斷all函式輸出結果為true?Python函式
- 『無為則無心』Python日誌 — 66、將日誌資訊儲存到檔案中Python
- Python專案實踐:串列埠字串資料的讀取、分割與儲存到csv檔案Python串列埠字串
- secureCRT螢幕日誌儲存到指定檔案的配置方法Securecrt
- 什麼是Python中Context上下文管理器PythonContext
- 排序,檔案輸入輸出排序
- Linux 下的檔案管理&管理系統中的輸出輸入Linux
- python 實現計算器功能 輸入字串,輸出相應結果Python字串
- python上下文管理器closing的應用Python
- Python分享之上下文管理器Python
- Python深入02 上下文管理器Python
- Python - Context Manager 上下文管理器PythonContext
- 把 var_dump 的結果儲存進同名 log 檔案的方法
- python怎麼將列印輸出日誌檔案Python
- 用python寫一個指令碼,讀取srt檔案中的內容,並列印出重複的內容,且將不重複的內容儲存到新檔案中Python指令碼
- SingleFile:將整個網頁完整下載儲存到本地一個HTML檔案中網頁HTML
- [20190219]windows批處理如何將結果儲存到引數裡面.txtWindows
- python 使用 loguru 輸出異常日誌同時列印變數值Python變數
- 第10章 對檔案的輸入輸出
- Python 簡單理解 with 上下文管理器Python
- 有遇到過嗎?同樣的規則 Excel 中 比Python 結果大ExcelPython
- Java 從指定URL下載檔案並儲存到指定目錄Java
- Serverless 使用阿里雲OOS將http檔案轉存到物件儲存Server阿里HTTP物件
- python 儲存檔案jsonPythonJSON
- chat-gpt-google-extension: 在谷歌搜尋結果中同時顯示ChatGPT結果的chrome外掛Go谷歌ChatGPTChrome
- filebeat輸出結果到elasticsearch的多個索引Elasticsearch索引
- SingleFile:將網頁像快照一樣下載儲存到本地一個HTML檔案中網頁HTML
- skmultiflow使用自己的csv檔案訓練模型並儲存實驗結果模型
- 「Python實用秘技13」Python中臨時檔案的妙用Python
- 如何控制一些專案在ORDRSP中不輸出
- Python自動合併Word檔案同時新增分頁符的方法Python
- 瞭解下C# 檔案的輸入與輸出C#
- Python的configparser模組讀取.ini檔案內容並輸出Python
- MySQL輸出html格式檔案MySqlHTML