網(wǎng)站首頁 編程語言 正文
介紹
OptionParser是一個更方便、更靈活、更強(qiáng)大的用于解析命令行選項(xiàng)的庫,使用更具聲明性的命令行分析樣式:創(chuàng)建 OptionParser ,用選項(xiàng)填充它,并解析命令行。 optparse 允許用戶以常規(guī)GNU/POSIX語法指定選項(xiàng),并另外為您生成用法和幫助消息
基本用法
①from optparse import OptionParser #導(dǎo)入模塊 ②parser = OptionParser(...) #創(chuàng)建實(shí)例 ③parser.add_option(...) #添加命令行參數(shù) ④(options, args) = parser.parse_args() #得到解析后的options對象,查看用戶的輸入
參數(shù)選項(xiàng)
OptionParser()
parser = OptionParser(usage="usage: %prog [options] arg",version="%prog 1.0",description="hello OptionParser!") #usage 打印用法 例如: Usage: test.py [options] arg #version --version時輸出版本信息 例如:test.py 1.0 #description 描述信息 --help時輸出 例如:hello OptionParser!
parser.add_option()
parser.add_option("-v", "--verbose",action="store_true",dest="verbose",help="這是幫助文檔") #action 指明optparser解析參數(shù)時該如何處理。默認(rèn)是store - store 表示命令行參數(shù)的值保存在options對象中。 - store_false 中存在 -v verbose 將會返回false,也就是說verbose的值與-v后的具體參數(shù)具體項(xiàng)無關(guān),只與-v是否存在有關(guān) - store_true 與action="store_false"類似,只有其中有參數(shù)-v存在時,則verbose的值為true,如果-v不存在,那么verbose的值為None #type 默認(rèn)是string,也可以是 int、float等 #dest 指定接收用戶輸入的值,當(dāng)action="store"時可以將dest接收的值進(jìn)打印或比較等其他處理 例如: from optparse import OptionParser def main(): parser = OptionParser(usage="usage: %prog [options] arg",version="%prog 1.0",description="hello OptionParser!") parser.add_option("-f", "--file", dest="filename",help="read data from FILENAME") parser.add_option("-v", "--verbose",action="store_true",dest="verbose",help="這是幫助文檔") parser.add_option("-q", "--quiet",action="store_false", dest="verbose") (options, args) = parser.parse_args() print(options.filename) if __name__ == "__main__": main() #===test.py -f 1輸出===# PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py -f 1 1 #default 設(shè)置默認(rèn)值;如果在命令行上未看到該選項(xiàng),則default的值為用于該選項(xiàng)的默認(rèn)值。 #help --help時 輸出該選項(xiàng)的解釋說明 例如: parser.add_option("-v", "--verbose",action="store_true",dest="verbose",help="這是幫助文檔") #===test.py -h輸出===# -v, --verbose 這是幫助文檔
生成幫助
#!/usr/bin/env python3.8.8 # -*- encoding: utf-8 -*- ''' @File : test.py @Time : 2022/02/08 11:48:40 @Author : 熱氣球 @Version : 1.0 @Contact : 17695691664@163.com ''' from optparse import OptionParser def main(): parser = OptionParser(usage="usage: %prog [options] arg",version="%prog 1.0",description="hello OptionParser!") parser.add_option("-f", "--file", dest="filename",help="read data from FILENAME") parser.add_option("-v", "--verbose",action="store_true",dest="verbose",help="這是幫助文檔") parser.add_option("-q", "--quiet",action="store_false", dest="verbose") (options, args) = parser.parse_args() if len(args) != 1: parser.error("incorrect number of arguments") if options.verbose: print("reading %s..." % options.filename) if __name__ == "__main__": main() #===test.py -h輸出===# PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py --help Usage: test.py [options] arg hello OptionParser! Options: --version show program's version number and exit -h, --help show this help message and exit -f FILENAME, --file=FILENAME read data from FILENAME -v, --verbose 這是幫助文檔 -q, --quiet PS C:\Users\Administrator>
錯誤提示
此示例拿于官網(wǎng)手冊
#!/usr/bin/env python3.8.8 # -*- encoding: utf-8 -*- ''' @File : test.py @Time : 2022/02/08 11:48:40 @Author : 熱氣球 @Version : 1.0 @Contact : 17695691664@163.com ''' from optparse import OptionParser def main(): parser = OptionParser(usage="usage: %prog [options] arg",version="%prog 1.0",description="hello OptionParser!") parser.add_option("-f", "--file", dest="filename",help="read data from FILENAME") parser.add_option("-v", "--verbose",action="store_true", dest="verbose") parser.add_option("-q", "--quiet",action="store_false", dest="verbose") (options, args) = parser.parse_args() if len(args) != 1: parser.error("incorrect number of arguments") if options.verbose: print("reading %s..." % options.filename) if __name__ == "__main__": main() #---示例代碼解釋---# -v參數(shù) 當(dāng)指定-v時才可以運(yùn)行此代碼,因?yàn)?v存在時if options.verbose: 為True -q參數(shù) 當(dāng)指定-q時表明退出執(zhí)行,因?yàn)閍ction="store_false",所以-q不存在,if options.verbose: 為True -f參數(shù) 指定filename,需要配合-v參數(shù)一起使用; -v參數(shù)的具體選項(xiàng)值隨意設(shè)置,存在即可。 #===test.py -v True -f 1輸出===# reading 1... #===test.py -f 1輸出===# PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py -f 1 Usage: cov-run-desktop-test.py [options] arg cov-run-desktop-test.py: error: incorrect number of arguments 提示參數(shù)不夠 #===test.py -f 輸出===# PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py -f Usage: cov-run-desktop-test.py [options] arg cov-run-desktop-test.py: error: -f option requires 1 argument 錯誤:-f選項(xiàng)需要1個參數(shù)
代碼示例
#!/usr/bin/env python3.8.8 # -*- encoding: utf-8 -*- ''' @File : test.py @Time : 2022/02/08 11:48:40 @Author : 熱氣球 @Version : 1.0 @Contact : 17695691664@163.com ''' from optparse import OptionParser def main(): parser = OptionParser(usage="usage: %prog [options] arg",version="%prog 1.0",description="hello OptionParser!") parser.add_option("-f", "--file", dest="filename",help="read data from FILENAME") parser.add_option("-v", "--verbose",action="store", default='reqiqiu',dest="verbosename",help="這是幫助文檔") parser.add_option("-q", "--quiet",action="store_false", dest="verbose") (options, args) = parser.parse_args() if len(args) != 1: parser.error("incorrect number of arguments") if options.verbose: print("reading %s..." % options.filename) if __name__ == "__main__": main() #===test.py -h輸出===# PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py -h Usage: test.py [options] arg hello OptionParser! Options: --version show program's version number and exit -h, --help show this help message and exit -f FILENAME, --file=FILENAME read data from FILENAME -v VERBOSENAME, --verbose=VERBOSENAME 這是幫助文檔 -q, --quiet #===test.py -v輸出===# PS C:\Users\Administrator> & E:/python3.8.8/python.exe c:/Users/Administrator/Desktop/test.py --version test.py 1.0
總結(jié)
原文鏈接:https://blog.csdn.net/weixin_42506599/article/details/122830917
相關(guān)推薦
- 2022-04-23 一起來了解一下C++的結(jié)構(gòu)體?struct_C 語言
- 2022-09-22 Mybaits一級緩存和二級緩存分別是什么,區(qū)別是什么?
- 2023-01-05 詳解C++中四種類型的轉(zhuǎn)換_C 語言
- 2022-05-25 Entity?Framework?Core對Web項(xiàng)目生成數(shù)據(jù)庫表_實(shí)用技巧
- 2022-02-24 解決:this is incompatible with sql_mode=only_full_gr
- 2022-05-12 基于nginx反向代理獲取用戶真實(shí)Ip地址詳解_nginx
- 2022-12-15 Python爬蟲庫urllib的使用教程詳解_python
- 2022-11-22 Android?10?啟動之servicemanager源碼解析_Android
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支