1. 程式人生 > 程式設計 >python getopt模組使用例項解析

python getopt模組使用例項解析

這篇文章主要介紹了python getopt模組使用例項解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

官方介紹地址:https://docs.python.org/3.1/library/getopt.html

實用方向:

  處理命令列引數的一個方法,簡單好用。

方法:

  getopt模組總共有2個函式,分別為:

  • getopt.getopt
  • getopt.gnu_getopt

簡單使用:

getopt這個函式常用,簡單看一下這個函式的使用:

getopt.getopt(args,shortopts,longopts=[])

看這幾個引數,

args為:指令碼接受的引數,傳入為list型別,此處與sys.argv連並使用

shortopts:短引數。就是參考:python3 test.py -v,這個-v就是需要用到的短引數。

longopts=[]:長引數。就是參考:python3 test.py --v,兩個-的就是需要用到的長引數。

先簡單有一個印象。

那後面需要用到的引數怎麼傳入,怎麼處理呢?

引數處理:

import sys
import getopt

opts = getopt.getopt(sys.argv[1:],"-h",["help"])
print(opts)

我們在命令列跑一下:

GL$python3 111.py --help
([('--help','')],[])

GL$python3 111.py -h 
([('-h',[])

列印瞭如上的內容,我們依次看一下

1、我們為什麼要用sys.argv[1:]呢?是因為第0個是函式本身,所以接受除本身之外的所以引數

2、返回的是一個tuple,第一個list我們可以理解是傳入的--h,加到了一個list裡,第二個list則是-h後面加的引數,這裡沒有加,所以為空

下面來實踐一下:

import getopt
import sys

opts,args = getopt.getopt(sys.argv[1:],'-h-w:-v',['help','version'])
for opt_name,opt_value in opts:

  if opt_name in ('-h','--help'):
    print(opt_name,"this is help")
    exit()

  if opt_name == '-w':
    print("-w:",opt_value)
    exit()

  if opt_name in ('-v','--version'):

    print('version:0.01')
    exit()

執行起來看看:

GL$python3 111.py -w 123-w: 123GL$python3 111.py -h
-h this is help
GL$python3 111.py -v
version:0.01GL$python3 111.py --help
--help this is help

由上,又出現了個新東西,shortopts裡面怎麼多了個冒號呢??那個是幹啥的?

其實,從上面的例子也可以簡單看出來,加冒號意思就是-w後面要加引數,不加冒號就不用加引數,longopts也是一樣,冒號用等號代替。

好,這裡都已經有些瞭解了。那麼後面的args,是幹啥的呀。還有opts又是幹啥的呀。

opts 就是分析出的格式資訊。args 為不屬於格式資訊的剩餘的命令列引數。

opts 是一個兩元組的列表。(選項串,附加引數) 。如果沒有則為空。

下面看例子:

我們在最開頭列印args,也就是加一行 print(args),我就不貼程式碼了。

執行起來:

GL$python3 111.py --help ssss
['ssss']
--help this is help/GL$python3 111.py -w 123 123
['123']
-w: 123

多餘的未識別的就成了args裡面的內容了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。