Python編寫帶選項(xiàng)的命令行程序方法
運(yùn)行python程序時(shí),有時(shí)需要在命令行傳入一些參數(shù)。常見的方式是在執(zhí)行時(shí),在腳本名后直接追加空格分隔的參數(shù)列表(例如 python test.py arg0 arg1 arg2),然后在腳本中就可以通過sys.argv獲取所有的命令行參數(shù)。
這種方式的優(yōu)點(diǎn)是傳參方便,參數(shù)獲取簡單;缺點(diǎn)是執(zhí)行腳本時(shí),必須知道參數(shù)的順序,并且不能設(shè)置默認(rèn)值,所有參數(shù)每次都必須傳入。
還有一種命令行傳參方式是通過帶選項(xiàng)的方式進(jìn)行傳參(例如python test.py -p0=arg0 -p1=arg1)。
這種方式的優(yōu)點(diǎn)是參數(shù)不用按照固定的順序傳入,并且對于有默認(rèn)值的參數(shù),可以不傳參數(shù)直接使用默認(rèn)值;缺點(diǎn)是傳入?yún)?shù)時(shí)需要額外加上選項(xiàng)。
對于帶選項(xiàng)的命令行參數(shù),可以通過python自帶的getopt模塊來進(jìn)行解析。
主要方法:
getopt(args, shortopts, longopts = []):解析命令行選項(xiàng)和參數(shù)列表。
args是不包括運(yùn)行程序引用的參數(shù)列表,通常來說就是sys.args[1:]。
shortopts是腳本要識別的短選項(xiàng)字母,如果短選項(xiàng)需要參數(shù),需要在字母后加冒號“:”。
longopts是支持的長選項(xiàng),是一個(gè)長選項(xiàng)名稱的列表。選項(xiàng)名稱不包括“-”。需要參數(shù)的長選項(xiàng),需要在后面加一個(gè)等號“=”。
返回值包括兩個(gè)列表:第一個(gè)列表中是(選項(xiàng),值),如果選項(xiàng)沒有參數(shù),值為空字符串。第二個(gè)列表是剝離選項(xiàng)之后的程序參數(shù)列表。長項(xiàng)前用“--”,短項(xiàng)前用“-”。
另外要注意的是當(dāng)進(jìn)行命令行參數(shù)解析時(shí),如果遇到了非選項(xiàng)的參數(shù)時(shí),就會停止帶選項(xiàng)參數(shù)的解析。
簡單示例
#!/usr/bin/python
# -*- coding: gbk -*-
import sys
import getopt
def printUsage():
print ('''usage: test.py -i <input> -o <output>
test.py --in=<input> --out=<output>''')
def main():
inputarg=""
outputarg=""
try:
opts, args = getopt.getopt(sys.argv[1:],"hi:o:",["in=","out="])
except getopt.GetoptError:
printUsage()
sys.exit(-1)
for opt,arg in opts:
if opt == '-h':
printUsage()
elif opt in ("-i", "--in"):
inputarg=arg
elif opt in ("-o","--out"):
outputarg=arg
print ('輸入:'+inputarg)
print ('輸出:'+outputarg)
print ('其他程序參數(shù):'+",".join(args))
if __name__=="__main__":
main()
以上這篇Python編寫帶選項(xiàng)的命令行程序方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python 動態(tài)生成變量名以及動態(tài)獲取變量的變量名方法
今天小編就為大家分享一篇python 動態(tài)生成變量名以及動態(tài)獲取變量的變量名方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
Python基于gevent實(shí)現(xiàn)文件字符串查找器
這篇文章主要介紹了Python基于gevent實(shí)現(xiàn)文件字符串查找器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
Python生成可執(zhí)行文件之PyInstaller庫的使用方式
PyInstaller是一個(gè)十分有用的第三方庫,通過對源文件打包,Python程序可以在沒有安裝Python的環(huán)境中運(yùn)行,也可以作為一個(gè)獨(dú)立文件方便傳遞和管理,下面這篇文章主要給大家介紹了關(guān)于Python生成可執(zhí)行文件之PyInstaller庫的使用方式,需要的朋友可以參考下2022-04-04
Python實(shí)現(xiàn)批量修改Word文檔中圖片大小并居中對齊
這篇文章主要介紹了如何利用Python實(shí)現(xiàn)批量修改Word文檔中圖片大小并居中對齊,文中通過代碼示例給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-08-08
python pytorch中.view()函數(shù)的用法解讀
這篇文章主要介紹了python pytorch中.view()函數(shù)的用法,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08

