print方法的參數
print方法的參數:(在python3的命令行執行help(print)就可以看到)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
將 value 打印到一個輸出流,默認的輸出流為 sys.stdout。
可選參數有:
file: 使用一個文件對象作為輸出目標,默認值為當前輸出流 sys.stdout;
sep: 輸出的多個 value 之間的分隔符,默認為一個空格;
end: 完成所有 value 的輸出之后在其后添加的字符,默認為 \n 換行符;
flush: 布爾值,是否立即刷新緩沖區,即立刻將數據寫入到磁盤文件;
關於flush,還有一點要說,默認情況下,flush 值為 False,這時只有當緩沖區滿,操作系統才會將數據寫入文件中。
而close,也是在內部先調用 flush 方法來刷新緩沖區,再執行關閉操作,這樣即使緩沖區沒有滿,也可以強制寫入數據,保證了數據的完整性。
如果進程意外退出或正常退出時為close文件對象,緩存區的內容將會丟失。
舉例:重寫print方法為log_print
# 重寫log_print方法,加入時間信息
def log_print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False):
print("當前時間:" + datetime.now().strftime('%Y-%m-%d %H:%M:%S')) # 這樣每次調用log_print()的時候,會先輸出當前時間,然后再輸出內容
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
用logging
import logging
logging.basicConfig(format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: \
%(message)s', level=logging.INFO)
logging.info('begin...')
# 輸出樣式:
# 2021-01-05 16:23:58,046 - main.py[line:92] - INFO: begin...