python中g(shù)etopt()函數(shù)用法詳解
通過getopt模塊中的getopt( )方法,我們可以獲取和解析命令行傳入的參數(shù)
一、函數(shù)用法
getopt(args, shortopts, longopts=[ ])
- args:固定寫法sys.argv[1:]
- shortopts:短參
- 字符串類型,限制命令行可傳入的短參名稱(命令行可不傳參,如果傳參,必須是指定的參數(shù)名,否則會報錯)
- 參數(shù)名必須為單字符,前面使用單短橫線(-)
- 命令行寫法:
- -a 不帶參數(shù)值形式
- -b test_b 帶參數(shù)值形式(中間空格可省略,個人推薦帶上空格,更容易區(qū)分)
- -c 'test c' 參數(shù)值含空格,需要使用引號
- 按照上述命令行寫法,shortopts的寫法可以是:'ab:c:'
- 如果帶參數(shù)值,則需要在參數(shù)名后面帶上':'
- 各參數(shù)名先后順序無所謂,比如'b:ac:'
- longopts:長參
- 數(shù)組類型,元素為字符串,限制命令行可傳入的長參名稱(命令行可不傳參)
- 參數(shù)名前使用雙短橫線(--)
- 命令行寫法:
- --aa 不帶參數(shù)值形式
- --bb=test_bb 帶參數(shù)值形式
- --cc='test cc' 帶參數(shù)值形式,參數(shù)值含空格,需要使用引號
- 按上述命令行寫法,longopts寫法可以是:['aa', 'bb=', 'cc=']
- 如果帶參數(shù)值,則需要在參數(shù)名后面帶上'='
- 各參數(shù)名先后順序無所謂
二、示例
代碼
#! /usr/bin/env python # -*- coding: utf-8 -*- import sys from getopt import getopt opts, args = getopt(sys.argv[1:], 'ab:', ['aa', 'bb=']) # 解析出的參數(shù)名和值,格式:[(參數(shù)1,參數(shù)值1), (參數(shù)2,參數(shù)值2)...] print(f'opts: {opts}') # 未解析出來的參數(shù)值部分 print(f'args: {args}')
命令行
python main.py -a -b 'test short_b' --aa --bb=long_bb xxxx
輸出:
opts: [('-a', ''), ('-b', 'test short_b'), ('--aa', ''), ('--bb', 'long_bb')]
args: ['xxxx']
對于沒有參數(shù)值的a和aa參數(shù),解析出的參數(shù)值都為空字符串'',由于bb參數(shù)的參數(shù)值long_bb和xxxx之間有空格,所以未解析出
命令行
python main.py -b=test_b
輸出:
opts: [('-a', ''), ('-b', 'test short_b'), ('--aa', ''), ('--bb', 'long_bb')]
args: ['xxxx']
參數(shù)可傳,也可省略,如果傳,則必須是代碼中所指定的
到此這篇關(guān)于python中g(shù)etopt()函數(shù)用法的文章就介紹到這了,更多相關(guān)python getopt()函數(shù)用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python OOP類中的幾種函數(shù)或方法總結(jié)
今天小編就為大家分享一篇關(guān)于Python OOP類中的幾種函數(shù)或方法總結(jié),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02使用Tensorflow-GPU禁用GPU設(shè)置(CPU與GPU速度對比)
這篇文章主要介紹了使用Tensorflow-GPU禁用GPU設(shè)置(CPU與GPU速度對比),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06Python數(shù)據(jù)結(jié)構(gòu)之優(yōu)先級隊列queue用法詳解
queue庫提供了一個適用于多線程編程的先進(jìn)先出(FIFO)數(shù)據(jù)結(jié)構(gòu),可以用來在生產(chǎn)者與消費(fèi)者線程之間安全地傳遞消息或其他數(shù)據(jù),它會為調(diào)用者處理鎖定,使多個線程可以安全而更容易地處理同一個Queue實例.Queue的大小可能受限,以限制內(nèi)存使用或處理,需要的朋友可以參考下2021-05-05Python實現(xiàn)監(jiān)控鍵盤鼠標(biāo)操作示例【基于pyHook與pythoncom模塊】
這篇文章主要介紹了Python實現(xiàn)監(jiān)控鍵盤鼠標(biāo)操作,結(jié)合實例形式分析了Python基于pyHook與pythoncom模塊的鍵盤、鼠標(biāo)事件響應(yīng)及日志文件操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2018-09-09