黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Python編寫(xiě)帶選項(xiàng)的命令行程序方法

系統(tǒng) 2230 0

運(yùn)行python程序時(shí),有時(shí)需要在命令行傳入一些參數(shù)。常見(jiàn)的方式是在執(zhí)行時(shí),在腳本名后直接追加空格分隔的參數(shù)列表(例如 python test.py arg0 arg1 arg2),然后在腳本中就可以通過(guò)sys.argv獲取所有的命令行參數(shù)。

這種方式的優(yōu)點(diǎn)是傳參方便,參數(shù)獲取簡(jiǎn)單;缺點(diǎn)是執(zhí)行腳本時(shí),必須知道參數(shù)的順序,并且不能設(shè)置默認(rèn)值,所有參數(shù)每次都必須傳入。

還有一種命令行傳參方式是通過(guò)帶選項(xiàng)的方式進(jìn)行傳參(例如python test.py -p0=arg0 -p1=arg1)。

這種方式的優(yōu)點(diǎn)是參數(shù)不用按照固定的順序傳入,并且對(duì)于有默認(rèn)值的參數(shù),可以不傳參數(shù)直接使用默認(rèn)值;缺點(diǎn)是傳入?yún)?shù)時(shí)需要額外加上選項(xiàng)。

對(duì)于帶選項(xiàng)的命令行參數(shù),可以通過(guò)python自帶的getopt模塊來(lái)進(jìn)行解析。

主要方法:

getopt(args, shortopts, longopts = []):解析命令行選項(xiàng)和參數(shù)列表。

args是不包括運(yùn)行程序引用的參數(shù)列表,通常來(lái)說(shuō)就是sys.args[1:]。

shortopts是腳本要識(shí)別的短選項(xiàng)字母,如果短選項(xiàng)需要參數(shù),需要在字母后加冒號(hào)“:”。

longopts是支持的長(zhǎng)選項(xiàng),是一個(gè)長(zhǎng)選項(xiàng)名稱(chēng)的列表。選項(xiàng)名稱(chēng)不包括“-”。需要參數(shù)的長(zhǎng)選項(xiàng),需要在后面加一個(gè)等號(hào)“=”。

返回值包括兩個(gè)列表:第一個(gè)列表中是(選項(xiàng),值),如果選項(xiàng)沒(méi)有參數(shù),值為空字符串。第二個(gè)列表是剝離選項(xiàng)之后的程序參數(shù)列表。長(zhǎng)項(xiàng)前用“--”,短項(xiàng)前用“-”。

另外要注意的是當(dāng)進(jìn)行命令行參數(shù)解析時(shí),如果遇到了非選項(xiàng)的參數(shù)時(shí),就會(huì)停止帶選項(xiàng)參數(shù)的解析。

簡(jiǎn)單示例

            
#!/usr/bin/python
# -*- coding: gbk -*-
import sys
import getopt
def printUsage():
	print ('''usage: test.py -i 
            
             -o 
            
              
    test.py --in=
              
               --out=
              
                ''')
 
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ě)帶選項(xiàng)的命令行程序方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論