您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“python如何實現信息同時輸出到控制臺與文件”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“python如何實現信息同時輸出到控制臺與文件”這篇文章吧。
python編程中,往往需要將結果用print等輸出,如果希望輸出既可以顯示到IDE的屏幕上,也能存到文件中(如txt)中,該怎么辦呢?
方法1
可通過日志logging模塊輸出信息到文件或屏幕。但可能要設置log的level或輸出端,對于同時需要記錄debug error等信息的較為合適,官方教程推薦學習用更規范的logger來操作。
例如,可參考來自官網的這段代碼。
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__)) #當然 也可以用f.write("info")的方式寫入文件
方法3
利用輸出重定向輸出兩次
同樣輸出程序path和文件名
import os import sys temp=sys.stdout # 記錄當前輸出指向,默認是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()) # 將記錄在文件中的結果輸出到屏幕
R的重定向
這里多嘴補充一下,在windows下的R語言中,有個sink(‘文件名.后綴名') 可以將輸出重定向到文件中,然后用sink()重返控制臺 很是方便
以上是“python如何實現信息同時輸出到控制臺與文件”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。