看了一個博客,挺不錯的。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打印到命令行了