国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python獲取命令行輸入參數列表的實例代碼

2020-02-15 21:59:31
字體:
來源:轉載
供稿:網友

(一)單一獨立的參數

如果命令行輸入的參數都是各自單一獨立的,直接用個循環把所有參數逐一讀出來就行了。sys模塊里面直接用args = sys.argv就可以獲取到所有參數了(返回值args是一個list),args0]是執行的python文件路徑名,args[1:]后面的才是真正命令行輸入的參數,用個for循環就可以一一讀取args列表,示例代碼如下:

import sysdef usage():	print """This is usage.This is usage.This is usage."""def main(argv):	for arg in argv[1:]:		if arg == '-t':			pass		elif arg == '-h' or arg == '--help':			usage()			sys.exit()		elif arg == '-p':			pass		else:			print "Error: invalid parameters"			sys.exit()if __name__ == '__main__':	main(sys.argv)

(二)參數結合

如果要讀取:-t mytest 這樣的組合參數,上面的方法就行不通了,在shell里面有shift可以直接移到下一個參數,但在python沒有shift的功能,所以得換種方式。

一種方法是用getopt模塊(官方文檔關于getopt的解釋:點擊打開鏈接):getopt模塊里面的getopt函數可以指定參數可能的類型并且獲取所有參數。

用法:

getopt.getopt(args, options[, long_options]) 

options參數指定短式輸入,也就是單橫杠"-",例如"-h",long_options是可選的,用于指定長式輸入,也就是雙橫杠"--",例如"--help"。如果是單一參數輸入,options和long_options都只需要直接寫參數名,例如下面這句代碼指定兩個單一參數:-h/--help -t/--test:

opts, args = getopt.getopt(sys.argv[1:], 'ht', ['help', 'test'']) 

如果是后面還要繼續接參數的,options要在參數名后面加冒號":",long_options要在參數名后面加等號"=",例如下面這句代碼指定三個參數:-h/--help -t/--test -r path / --root path:

opts, args = getopt.getopt(sys.argv[1:], 'htr:', ['help', 'test','root=']) 

getopt函數的返回值有兩個,一般只用第一個,如下面的代碼,第一個返回值opts :" is a list of (option, value) pairs",也就是一個 -t mytest 這樣的元素對,當然如果-t后面不需要再接參數的話,那就沒有value值了。利用這個pairs返回值,我們可以用個for循環獲取參數,不管是單一獨立的參數,還是結合的參數,都可以,示例代碼如下:

import sysimport getoptdef usage():	print """This is usage.This is usage.This is usage."""def main(argv):	try:		opts, args = getopt.getopt(sys.argv[1:], 'm:p:h', ['miner=', 'params=', 'help'])	except getopt.GetoptError:		usage()		sys.exit()		for opt, arg in opts:		if opt in ['-h', '--help']:			pass		elif opt in ['-t', '--test']:			pass		elif opt in ['-p', '--path']:			param = arg			print param			sys.exit()		else:			print "Error: invalid parameters"			usage()			sys.exit()if __name__ == '__main__':	main(sys.argv)            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 房产| 汤阴县| 九江县| 荆门市| 南充市| 乳山市| 台前县| 巨鹿县| 宾川县| 洪洞县| 文成县| 罗山县| 内江市| 兴业县| 略阳县| 渭源县| 隆昌县| 辽宁省| 双柏县| 博乐市| 合阳县| 中方县| 邯郸县| 江达县| 伊春市| 双流县| 平山县| 南澳县| 阳山县| 河东区| 安徽省| 邵阳市| 洛宁县| 小金县| 当雄县| 长葛市| 连山| 富源县| 东莞市| 滁州市| 托克逊县|