python 信息同時輸出到控制臺與文件的實(shí)例講解
python編程中,往往需要將結(jié)果用print等輸出,如果希望輸出既可以顯示到IDE的屏幕上,也能存到文件中(如txt)中,該怎么辦呢?
方法1
可通過日志logging模塊輸出信息到文件或屏幕。但可能要設(shè)置log的level或輸出端,對于同時需要記錄debug error等信息的較為合適,官方教程推薦學(xué)習(xí)用更規(guī)范的logger來操作。
例如,可參考來自官網(wǎng)的這段代碼。
import logging
logging.basicConfig(filename='log_examp.log',level=logging.DEBUG)
logging.debug('This message should go to the log file')
logging.info('So should this')
logging.warning('And this, too')
方法2
利用print輸出兩次
比如這里我想輸出程序的path和程序的文件名
import os
# 第一句輸出到consle:
print("filepath:",__file__,"\nfilename:",os.path.basename(__file__))
# 第二句輸出到txt:
with open("outputlog.txt","a+") as f:
print("filepath:",__file__,
"\nfilename:",os.path.basename(__file__))
#當(dāng)然 也可以用f.write("info")的方式寫入文件
方法3
利用輸出重定向輸出兩次
同樣輸出程序path和文件名
import os
import sys
temp=sys.stdout # 記錄當(dāng)前輸出指向,默認(rèn)是consle
with open("outputlog.txt","a+") as f:
sys.stdout=f # 輸出指向txt文件
print("filepath:",__file__,
"\nfilename:",os.path.basename(__file__))
print("some other information")
print("some other")
print("information")
sys.stdout=temp # 輸出重定向回consle
print(f.readlines()) # 將記錄在文件中的結(jié)果輸出到屏幕
R的重定向
這里多嘴補(bǔ)充一下,在windows下的R語言中,有個sink(‘文件名.后綴名') 可以將輸出重定向到文件中,然后用sink()重返控制臺 很是方便
以上這篇python 信息同時輸出到控制臺與文件的實(shí)例講解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
selenium使用chrome瀏覽器測試(附chromedriver與chrome的對應(yīng)關(guān)系表)
這篇文章主要介紹了selenium使用chrome瀏覽器測試(附chromedriver與chrome的對應(yīng)關(guān)系表),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11
python調(diào)用OpenCV實(shí)現(xiàn)人臉識別功能
這篇文章主要為大家詳細(xì)介紹了python調(diào)用OpenCV實(shí)現(xiàn)人臉識別功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05
python 非線性規(guī)劃方式(scipy.optimize.minimize)
今天小編就為大家分享一篇python 非線性規(guī)劃方式(scipy.optimize.minimize),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
使用pandas實(shí)現(xiàn)csv/excel sheet互相轉(zhuǎn)換的方法
今天小編就為大家分享一篇使用pandas實(shí)現(xiàn)csv/excel sheet互相轉(zhuǎn)換的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12

