1. 程式人生 > >python sys.argv[]用法

python sys.argv[]用法

sys.argv[]是用來獲取命令列引數的,sys.argv[0]表示程式碼本身檔案路徑,所以引數從1開始,以下兩個例子說明:

1、使用sys.argv[]的一簡單例項:
以下是sample1.py檔案:
  1. import sys,os   
  2. print sys.argv  
  3. os.system(sys.argv[1])  
這個例子os.system接收命令列引數,執行引數指令,cmd命令列帶引數執行python sample1.py notepad,將開啟記事本程式。
2、這個例子是簡明python教程上的,明白它之後你就明白sys.argv[]了。

以下是sample.py檔案:

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


在與sample.py同一目錄下,新建3個記事本檔案test.txt,test1.txt,test2.txt,內容如下圖:

                             

驗證sample.py,如下:
C:\Users\91135\Desktop>python sample.py
['sample.py']

No action specified.

C:\Users\91135\Desktop>python sample.py --help

['sample.py', '--help']

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

C:\Users\91135\Desktop>python sample.py --version
['sample.py', '--version']

Version 1.2

C:\Users\91135\Desktop>python sample.py --ok
['sample.py', '--ok']

Unknown option.

C:\Users\91135\Desktop>python sample.py test.txt
['sample.py', 'test.txt']
C:\Users\91135\Desktop>python sample.py test.txt test1.txt test2.txt
['sample.py', 'test.txt', 'test1.txt', 'test2.txt']
hello python!
hello world!

hello wahaha!

goodbye!