您好,登錄后才能下訂單哦!
??執行python命令會進入Python控制臺。在Python控制臺中可以用交互的方式執行Python語句。也就是執行一行Python語句,會立刻返回執行結果。
??當Python控制臺輸入過多的Python語句時,有時需要將這些已經輸入的語句和執行結果清空,并重新開始輸入Python語句。例如,下圖就是一個輸入了多條Python語句,并輸出相應結果的Python控制臺。
。
??當然,如果不想看到這些Python語句和輸出結果,可以一直按“回車” 鍵,直到Python控制臺中所有的內容都移到窗口上面為止。不過這樣以來,光標還是在Python控制臺的最下面,而且上面都是Python控制臺的命令提示符,非常難看,如下圖所示。
??如果讀者用的是Mac OS X系統,在Python控制臺中直接按Ctrl+L鍵就可以直接清空Python控制臺。而在Windows中,是沒有快捷鍵用來清空Python控制臺的,所以需要我們編寫Python代碼來實現清空Python控制臺的功能。因此,本節的目的到現在已經很清楚了,本節主要并不是教大家如何清空Python控制臺,而是借用清空Python控制臺這一操作,利用前面兩節介紹的導入模塊和聲明變量的知識,編寫一段Python程序,用來清空Python for Windows控制臺。
??在Windows下,如果要清空Windows控制臺,執行cls命令即可。由于Python控制臺是利用Windows控制臺實現的,所以cls命令也同樣可以清空Python控制臺。不過在Python控制臺不能直接執行cls命令。在Python控制臺要想執行外部命令,需要調用os模塊中的system函數。讀者可以一行一行在Python控制臺輸入下面的代碼。
import os # 導入os模塊
os.system('cls') # 執行cls命令清空Python控制臺
??執行這兩行代碼,是把以前在Python控制臺中輸入的內容都清空了,但在Python控制臺的第1行會輸出一個“0”,如下圖所示。
??其實這個“0”是os.system函數的返回值。Python控制臺會輸出每一條執行語句的返回值。os.system函數如果成功執行命令,返回“0”,如果執行命令失敗,返回“1”。不過為了最求完美,現在就把這個“0”去掉。
??之所以會輸出這個“0”,是因為Python語言的標準輸出默認指向的是Python控制臺,所以所有的Python語句執行的結果都輸出到了Python控制臺。現在只要改變Python語言的標準輸出,讓其指向一個文件,那么os.system函數的執行結果就會直接寫到這個文件中,而不是Python控制臺了。
??下面的例子會編寫一個Python程序,用于清空Python控制臺。
清空Python控制臺不輸出“0”的步驟如下:
(1)導入os模塊和sys模塊。
(2)使用open函數以可寫的方式打開一個文件,本例是out.log。
(3)為了不影響在Python控制臺輸出其他語句的執行結果,應先將Python默認的標準輸出保存到一個變量中,以便以后恢復默認的Python標準輸出。使用sys.stdout可以獲取Python標準輸出的句柄(Handler)。
(4)將Python標準輸出指向第2步打開的文件。
(5)使用os.system函數執行cls命令。
(6)恢復Python默認的標準輸出。
??完整的實現代碼如下。讀者可以在Python控制臺一行行輸入這些代碼,當執行到os.system(‘cls’)語句時,Python控制臺被清空,不會再顯示“0”。
import os # 導入os模塊
import sys # 導入sys模塊
f_handler=open('out.log', 'w') # 打開out.log文件
oldstdout = sys.stdout # 保存默認的Python標準輸出
sys.stdout=f_handler # 將Python標準輸出指向out.log
os.system('cls') # 清空Python控制臺
sys.stdout = oldstdout # 恢復Python默認的標準輸出
《Python從菜鳥到高手》已經出版,購買送視頻課程
《Python從菜鳥到高手》知識結構圖。
掃描二維碼關注“極客起源”公眾號,技術文章、視頻課程應有盡有
歡迎關注“Python開發者基地”公眾號
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。