Python從菜鳥到高手(2):清空Python控制台

來源:互聯網
上載者:User

執行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.logos.system('cls')                    # 清空Python控制台       sys.stdout = oldstdout              # 恢複Python預設的標準輸出

《Python從菜鳥到高手》已經出版,購買送視頻課程

《Python從菜鳥到高手》知識結構圖。

掃描二維碼關注“極客起源”公眾號,技術文章、視頻課程應有盡有

歡迎關注“Python開發人員基地”公眾號

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.