国产探花免费观看_亚洲丰满少妇自慰呻吟_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)            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 疏勒县| 大丰市| 东平县| 凭祥市| 乃东县| 双流县| 伊金霍洛旗| 聊城市| 新安县| 都江堰市| 汶上县| 青阳县| 上饶县| 常德市| 万宁市| 都昌县| 新余市| 东辽县| 维西| 昌都县| 眉山市| 吉林市| 南涧| 宝应县| 焦作市| 江川县| 巴楚县| 黔东| 岱山县| 青川县| 横山县| 大同县| 临颍县| 凭祥市| 金寨县| 临江市| 红安县| 依安县| 通江县| 隆德县| 海宁市|