sys 模塊提供了許多函數和變量來處理 Python 運行時環境的不同部分.
處理命令行參數
在解釋器啟動后, argv 列表包含了傳遞給腳本的所有參數, 列表的第一個元素為腳本自身的名稱.
使用sys模塊獲得腳本的參數
 代碼如下:
print "script name is", sys.argv[0]        # 使用sys.argv[0]采集腳本名稱
if len(sys.argv) > 1:
    print "there are", len(sys.argv)-1, "arguments:"  # 使用len(sys.argv)-1采集參數個數-1為減去[0]腳本名稱
    for arg in sys.argv[1:]:            #輸出除了[0]外所有參數
        print arg
else:
    print "there are no arguments!"
如果是從標準輸入讀入腳本 (比如 "python < sys-argv-example-1.py"), 腳本的名稱將被設置為空串.
如果把腳本作為字符串傳遞給python (使用 -c 選項), 腳本名會被設置為 "-c".
處理模塊
path 列表是一個由目錄名構成的列表, Python 從中查找擴展模塊( Python 源模塊, 編譯模塊,或者二進制擴展).
啟動 Python 時,這個列表從根據內建規則, PYTHONPATH 環境變量的內容, 以及注冊表( Windows 系統)等進行初始化.
由于它只是一個普通的列表, 你可以在程序中對它進行操作,
使用sys模塊操作模塊搜索路徑
 代碼如下:
print "path has", len(sys.path), "members"
sys.path.insert(0, "samples")  #將路徑插入到path,[0]中
import sample
sys.path = []  #刪除path中所有路徑
import random 
使用sys模塊查找內建模塊
builtin_module_names 列表包含 Python 解釋器中所有內建模塊的名稱
 代碼如下:
def dump(module):
    print module, "=>",
    if module in sys.builtin_module_names:  #查找內建模塊是否存在
        print "<BUILTIN>"
    else:
        module = _ _import_ _(module)         #非內建模塊輸出模塊路徑
        print module._ _file_ _
dump("os")
dump("sys")
dump("string")
dump("strop")
dump("zlib")
os => C:/python/lib/os.pyc
sys => <BUILTIN>
string => C:/python/lib/string.pyc
strop => <BUILTIN>
zlib => C:/python/zlib.pyd
使用sys模塊查找已導入的模塊
modules 字典包含所有加載的模塊. import 語句在從磁盤導入內容之前會先檢查這個字典.
Python 在處理你的腳本之前就已經導入了很多模塊.
 代碼如下:
print sys.modules.keys()
新聞熱點
疑難解答