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
- ImageView中圖片儲存到檔案View
- Java輸出流在txt檔案中的換行控制Java
- Python中的上下文管理器Python
- rust 截圖儲存到檔案Rust
- 簡單的mysql儲存過程,輸出結果集MySql儲存過程
- python:檔案的輸入與輸出Python
- javascript如何將檔案儲存到本地JavaScript
- 同時丟失控制檔案與資料檔案的恢復
- python中如何判斷all函式輸出結果為true?Python函式
- LINUX中fdisk -l 輸出結果的解讀Linux
- 將圖片檔案儲存到Oracle的儲存過程Oracle儲存過程
- 在RFT中如何擷取螢幕影像並儲存到檔案中?
- 『無為則無心』Python日誌 — 66、將日誌資訊儲存到檔案中Python
- C++中的檔案輸入/輸出(2):讀取檔案 (轉)C++
- mysql匯出select結果到檔案MySql
- Python進階02 文字檔案的輸入輸出Python
- 將審計記錄儲存到xml檔案XML
- C++中的檔案輸入/輸出(3):掌握輸入/輸出流 (轉)C++
- 記錄輸出結果工具-script
- Sparkstreaming讀取Kafka訊息再結合SparkSQL,將結果儲存到HBaseSparkKafkaSQL
- MySQL的Explain結果輸出項解釋MySqlAI
- chat-gpt-google-extension: 在谷歌搜尋結果中同時顯示ChatGPT結果的chrome外掛Go谷歌ChatGPTChrome
- 轉儲 控制檔案
- PE檔案結構(四) 輸出表
- python 實現計算器功能 輸入字串,輸出相應結果Python字串
- secureCRT螢幕日誌儲存到指定檔案的配置方法Securecrt
- 把 var_dump 的結果儲存進同名 log 檔案的方法
- Python專案實踐:串列埠字串資料的讀取、分割與儲存到csv檔案Python串列埠字串
- filebeat輸出結果到elasticsearch的多個索引Elasticsearch索引
- 有遇到過嗎?同樣的規則 Excel 中 比Python 結果大ExcelPython
- 控制檔案的結構
- 利用php+mysql儲存和輸出檔案(轉)PHPMySql
- 什麼是Python中Context上下文管理器PythonContext
- 排序,檔案輸入輸出排序
- 檔案操作-輸入輸出
- 將excel檔案內容儲存到資料庫,並可以實時在前端檢視(不必生成檔案)Excel資料庫前端
- mybatis執行查詢語句查詢不到結果,控制檯輸出sql語句複製到資料庫中能查到資料MyBatisSQL資料庫