python--sys.argv[]用法

 在學python的過程中,一直弄不明白sys.argv[]的意思,雖知道是表示命令行參數,但還是有些稀裏糊塗的感覺。

今天又好好學習了一把,總算是大徹大悟了。

Sys.argv[]是用來獲取命令行參數的,sys.argv[0]表示代碼本身文件路徑,所以參數從1開始,以下兩個例子說明:

1、使用sys.argv[]的一簡單實例,

  1. import sys,os  
  2. os.system(sys.argv[1])  

這個例子os.system接收命令行參數,運行參數指令,保存爲sample1.py,命令行帶參數運行sample1.py notepad,將打開記事本程序。

2、這個例子是簡明python教程上的,明白它之後你就明白sys.argv[]了。

  1. import sys  
  2. def readfile(filename):  #從文件中讀出文件內容  
  3.     '''''Print a file to the standard output.'''  
  4.     f = file(filename)  
  5.     while True:  
  6.         line = f.readline()  
  7.         if len(line) == 0:  
  8.             break  
  9.         print line, # notice comma  分別輸出每行內容  
  10.     f.close()  
  11. # Script starts from here  
  12. if len(sys.argv) < 2:  
  13.     print 'No action specified.'  
  14.     sys.exit()  
  15. if sys.argv[1].startswith('--'):  
  16.     option = sys.argv[1][2:]  
  17.     # fetch sys.argv[1] but without the first two characters  
  18.     if option == 'version':  #當命令行參數爲-- version,顯示版本號  
  19.         print 'Version 1.2'  
  20.     elif option == 'help':  #當命令行參數爲--help時,顯示相關幫助內容  
  21.         print '''''/ 
  22. This program prints files to the standard output. 
  23. Any number of files can be specified. 
  24. Options include: 
  25.   --version : Prints the version number 
  26.   --help    : Display this help'''  
  27.     else:  
  28.         print 'Unknown option.'  
  29.     sys.exit()  
  30. else:  
  31.     for filename in sys.argv[1:]: #當參數爲文件名時,傳入readfile,讀出其內容  
  32.         readfile(filename)  

保存程序爲sample.py.我們驗證一下:

1)       命令行帶參數運行:sample.py –version  輸出結果爲:version 1.2

2)       命令行帶參數運行:sample.py –help  輸出結果爲:This program prints files……

3)       在與sample.py同一目錄下,新建a.txt的記事本文件,內容爲:test argv;命令行帶參數運行:sample.py a.txt,輸出結果爲a.txt文件內容:test argv,這裏也可以多帶幾個參數,程序會先後輸出參數文件內容。


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