#!/usr/bin/python
# Filename: using_sys.py
import sys
print 'The command line arguments are:'
for i in sys.argv:
print i
print '\n\nThe PYTHONPATH is', sys.path, '\n'
(源文件:code/using_sys.py)
輸出
$ python using_sys.py we are arguments
The command line arguments are:
using_sys.py
we
are
arguments
The PYTHONPATH is ['/home/swaroop/byte/code', '/usr/lib/python23.zip',
'/usr/lib/python2.3', '/usr/lib/python2.3/plat-linux2',
'/usr/lib/python2.3/lib-tk', '/usr/lib/python2.3/lib-dynload',
'/usr/lib/python2.3/site-packages', '/usr/lib/python2.3/site-packages/gtk-2.0']
它如何工作
首先,我們利用 import 語句 輸入 sys 模塊?;旧希@句語句告訴 Python,我們想要使用這個模塊。sys 模塊包含了與 Python 解釋器和它的環(huán)境有關(guān)的函數(shù)。
當 Python 執(zhí)行 import sys 語句的時候,它在 sys.path 變量中所列目錄中尋找 sys.py 模塊。如果找到了這個文件,這個模塊的主塊中的語句將被運行,然后這個模塊將能夠被你 使用 。注意,初始化過程僅在我們 第一次 輸入模塊的時候進行。另外,“sys”是“system”的縮寫。
sys 模塊中的 argv 變量通過使用點號指明——sys.argv——這種方法的一個優(yōu)勢是這個名稱不會與任何在你的程序中使用的 argv 變量沖突。另外,它也清晰地表明了這個名稱是 sys 模塊的一部分。
sys.argv 變量是一個字符串的 列表(列表會在后面的章節(jié)詳細解釋)。特別地,sys.argv 包含了 命令行參數(shù) 的列表,即使用命令行傳遞給你的程序的參數(shù)。
如果你使用 IDE 編寫運行這些程序,請在菜單里尋找一個指定程序的命令行參數(shù)的方法。
這里,當我們執(zhí)行 python using_sys.py we are arguments 的時候,我們使用 python 命令運行 using_sys.py 模塊,后面跟著的內(nèi)容被作為參數(shù)傳遞給程序。Python 為我們把它存儲在 sys.argv 變量中。
記住,腳本的名稱總是 sys.argv 列表的第一個參數(shù)。所以,在這里,'using_sys.py'是sys.argv[0]、'we'是 sys.argv[1]、'are'是sys.argv[2]以及'arguments'是 sys.argv[3]。注意,Python 從 0 開始計數(shù),而非從 1 開始。
sys.path 包含輸入模塊的目錄名列表。我們可以觀察到 sys.path 的第一個字符串是空的——這個空的字符串表示當前目錄也是 sys.path 的一部分,這與 PYTHONPATH 環(huán)境變量是相同的。這意味著你可以直接輸入位于當前目錄的模塊。否則,你得把你的模塊放在 sys.path 所列的目錄之一。