詳細說明Python解釋器作用
在使用Python解釋器的時候,我們可能需要在每次解釋器啟動時執行一些命令,你可以在一個文件中包含你想要執行的命令,解釋器交互的解讀和執行命令,通過文件名參數或以文件做為標準輸入設備時,它從文件中解讀并執行腳本。
Python解釋器的位置是一個安裝選項,因此它可能在其它的位置。必要時詢問你身邊的Python專家或者系統管理員(/usr/local/python是另一個常見的安裝路徑)。在Windows上,Python通常安裝在C:\Python24[U1] ,但你可以在安裝時改變這個路徑。要把這個路徑加入到你的path中,請在命令行窗口里執行以下命令
在Python的提示符候輸入一個文件結束符(Control-D on Unix and Control-Z on Windows)會使解釋器退出并返回狀態碼0。如果文件結束符不起作用,你還可以執行命令”import sys;sys.quit()”來退出解釋器。解釋器的行編輯功能通常并不是很強大。但在Unix上,安裝了解釋器就激活了GNU readline庫的支持。該庫加入了很多復雜的交互式編輯和歷史紀錄的功能。
最快的檢測命令行編輯是否支持的辦法也許是在你遇到的第一個Python提示符候輸入Control-P。如果聽到嘟嘟響,就說明你可以使用命令行編輯。在附錄A中可以看到關于這些編輯鍵的介紹。如果什么都沒有發生或者顯示了字母P,則表示命令行編輯功能不可用,你只能使用backspace從當前行刪除字符。
解釋器有些像Unix的Shell:當調用時的標準輸入連接到一個tty設備時,交互的讀入命令并執行。如果跟著一個文件名作為參數,或者以一個文件作為標準輸入,則從該文件讀入并執行腳本。
第二種啟動解釋器的辦法是”python –c command [arg]…”。解釋器會執行傳入的命令,就像shell的-c選項一樣。因為Python的語句經常包含空格或者其它對shell有特殊意義的字符,最好把命令用雙引號引起來。一些Python模塊也是很有用的腳本。可以用”python –m module [arg]…”的方式來調用。解釋器會執行模塊的源文件,就如同你在命令行上給出了模塊的全名一樣。
注意”python file”和”python <file”有一點區別。后一種方式程序需要的輸入,如input()和raw_input()的調用會從輸入文件讀。同時在程序執行以前解釋器已經讀到輸入文件的末尾了。
因此程序會立刻遇到一個end-of-file。在前一種情況下(通常是你希望的)輸入從Python解釋器標準輸入相關聯的任何文件或者設備讀入。當使用腳本文件時,有時需要在執行完腳本候進入交互模式。可以通過在腳本前加上-i達到這種效果。(當腳本從標準輸入讀入時該方法不起作用,和上一段解釋的原因一樣)。
腳本名稱和附加的參數被放在sys.argv中傳入腳本。sys.argv是一個字符串列表,長度最少為1。當沒有腳本和參數傳入時,sys.argv[0]是一個空串。當腳本名用’-‘指定時(表示標準輸入),sys.argv[0]被置為’-‘。使用-m module選項時,sys.argv[0]被置為模塊的全名。
-c command 或-m module以后的選項不被Python解釋器處理,而是作為sys.argv傳給要執行的命令或模塊。
從tty讀入命令時,解釋器處于交互模式。
在這種模式下它用主提示符來提示用戶輸入下一個命令。主提示符通常是三個大于號(“>>>”)。在一行輸入沒有終結需要在下一行繼續輸入時的副提示符缺省時三個點號(“…”)。#t#
解釋器在輸出第一個提示符前先輸出一個包含了版本號和版權聲明的歡迎信息。一旦錯誤發生,解釋器就會打印出錯誤信息和當前堆棧。在交互模式下會回到主提示符下。當輸入來自文件,解釋器在打印出堆棧信息候會退出并返回一個非零的錯誤碼。
(被except語句捕獲住的異常在這里不算錯誤)。有些錯誤是無條件的致命的,會導致以一個非零的錯誤碼退出,通常由于內部的不一致和內存耗盡引起。所有的錯誤消息被寫道標準錯誤流而命令中的正常輸出寫到標準輸出。
在主提示符或副提示符下輸入中斷字符(通常是Control-C或者DEL)會取消輸入并返回到主提示符。當命令正在執行時輸入一個中斷會引發一個KeyboardInterrupt異常。該異常可以被try語句捕獲。
【編輯推薦】