python 以標准輸出(sys.stdout)為例,看python的標准輸入、標准錯誤輸出


看了一個博客,挺不錯的。http://www.cnblogs.com/turtle-fly/p/3280519.html

 

標准輸出(sys.stdout)對應的操作就是print(打印)了,標准輸入(sys.stdin)則對應input(接收輸入)操作,標准錯誤輸出和標准輸出類似也是print(打印)。

python最基本的操作 - 打印:

print 1

其效果是把 1 寫在console(命令行)里面讓你看。

實際上他的操作可以理解為:把console(命令行)作為一個板子,通過sys.stdout = console指定往console板子上寫東西(console是默認的,也就是說你不修改要往哪兒寫的話,就會默認往這寫),在print 1的時候,就是告訴python,我要寫1,然后python就會去sys.stdout所指定的板子里,也就是console(命令行)里寫上 1。

(標准錯誤輸出也是同樣的過程,你會發現當程序出錯時,錯誤信息也會打印在console里面。)

 

其實只要一個對象具有write方法,就可以被當作“板子”,告訴sys.stdout去哪里寫。

說道write方法,第一個想到的可能就是文件操作了。

f=open('log.txt','w')

想上面那樣聲明一個文件對象 f,此文件對象就擁有了write方法,就可以被用來當作標准輸出和保准錯誤輸出的板子。

f=open('log.txt','w')
__console__ = sys.stdout    #把默認的“板子” - 命令行做個備份,以便可以改回來

sys.stdout = f

print 1

sys.stdout = __console__
print 2

 

上面的操作,通過sys.stdout = f 指定打印時的板子改成了 f。所以在使用print的時候,不再是把1打印在命令行里,而是寫在了log.txt文件里面。

 

后面又把板子改成了命令行,此時print 2就又把2打印到命令行了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM