linux下python學習筆記(十九)之python標準庫

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()函數用來檢驗給出的路徑是否真地存在。

 

 

 

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章