Python標準庫是隨Python附帶安裝的,它包含大量極其有用的模塊。熟悉Python標準庫是十分重要的,因爲如果你熟悉這些庫中的模塊,那麼你的大多數問題都可以簡單快捷地使用它們來解決。
sys模塊
sys模塊包含系統對應的功能。我們已經學習了sys.argv列表,它包含命令行參數。
#!/usr/bin/python
# Filename: cat.py
import sys
def readfile(filename):
'''Print a file to the standard output.'''
f = file(filename)
while True:
line = f.readline()
if len(line) == 0:
break
print line, # notice comma
f.close()
# Script starts from here
if len(sys.argv) < 2:
print 'No action specified.'
sys.exit()
if sys.argv[1].startswith('--'):
option = sys.argv[1][2:]
# fetch sys.argv[1] but without the first two characters
if option == 'version':
print 'Version 1.2'
elif option == 'help':
print '''\
This program prints files to the standard output.
Any number of files can be specified.
Options include:
--version : Prints the version number
--help : Display this help'''
else:
print 'Unknown option.'
sys.exit()
else:
for filename in sys.argv[1:]:
readfile(filename)
這個程序用來模仿Linux/Unix用戶熟悉的cat命令。你只需要指明某些文本文件的名字,這個程序會把它們打印輸出。
在Python程序運行的時候,即不是在交互模式下,在sys.argv列表中總是至少有一個項目。它就是當前運行的程序名稱,作爲sys.argv[0]。
順便說一下,名稱cat是 concatenate 的縮寫,它基本上表明瞭程序的功能——它可以在輸出打印一個文件或者把兩個或兩個以上文件連接/級連在一起打印。
更多sys的內容
sys.version字符串給你提供安裝的Python的版本信息。sys.version_info元組則提供一個更簡單的方法來使你的程序具備Python版本要求功能。
對於有經驗的程序員,sys模塊中其他令人感興趣的項目有sys.stdin、sys.stdout和sys.stderr它們分別對應你的程序的標準輸入、標準輸出和標準錯誤流。
os模塊
這個模塊包含普遍的操作系統功能。如果你希望你的程序能夠與平臺無關的話,這個模塊是尤爲重要的。即它允許一個程序在編寫後不需要任何改動,也不會發生任何問題,就可以在Linux和Windows下運行。一個例子就是使用os.sep可以取代操作系統特定的路徑分割符。
● os.name字符串指示你正在使用的平臺。比如對於Windows,它是'nt',而對於Linux/Unix用戶,它是'posix'。
● os.getcwd()函數得到當前工作目錄,即當前Python腳本工作的目錄路徑。
● os.getenv()和os.putenv()函數分別用來讀取和設置環境變量。
● os.listdir()返回指定目錄下的所有文件和目錄名。
● os.remove()函數用來刪除一個文件。
● os.system()函數用來運行shell命令。
● os.linesep字符串給出當前平臺使用的行終止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。
● os.path.split()函數返回一個路徑的目錄名和文件名。
● os.path.isfile()和os.path.isdir()函數分別檢驗給出的路徑是一個文件還是目錄。類似地,os.path.exists()函數用來檢驗給出的路徑是否真地存在。