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

首頁 > 編程 > Python > 正文

詳解Python中 sys.argv[]的用法簡明解釋

2020-02-16 11:12:56
字體:
供稿:網(wǎng)友

因為是看書自學的python,開始后不久就遇到了這個引入的模塊函數(shù),且一直在IDLE上編輯了后運行,試圖從結(jié)果發(fā)現(xiàn)它的用途,然而結(jié)果一直都是沒結(jié)果,也在網(wǎng)上查了許多,但發(fā)現(xiàn)這個問題的比較詳細的解釋只有一個版本,大部分都是轉(zhuǎn)裁和復制的。給的都是簡明python教程上那個一長串代碼的例子,說看了就明白了,可我看得暈頭轉(zhuǎn)向的還是沒真正明白,只知道“sys.argv[0]表示代碼本身文件路徑”這點,其實還是不明其意。后來經(jīng)過大量努力,多方求教才真正明悟了,謹以記錄和分享,希望能從另一個角度給同在求索過程中的同學一點啟發(fā)。

sys.argv[]說白了就是一個從程序外部獲取參數(shù)的橋梁,這個“外部”很關(guān)鍵,所以那些試圖從代碼來說明它作用的解釋一直沒看明白。因為我們從外部取得的參數(shù)可以是多個,所以獲得的是一個列表(list),也就是說sys.argv其實可以看作是一個列表,所以才能用[]提取其中的元素。其第一個元素是程序本身,隨后才依次是外部給予的參數(shù)。

下面我們通過一個極簡單的test.py程序的運行結(jié)果來說明它的用法。

 #test.py import sys a=sys.argv[0] print(a)

將test.py保存在c盤的根目錄下。

在程序中找到 ‘運行'->點擊->輸入"cmd"->回車鍵   進入控制臺命令窗口(如下圖),先輸入cd c:/   (作用是將命令路徑改到c盤根目錄),然后輸入test.py運行我們剛剛寫的程序:

 

得到的結(jié)果是C:/test.py,這就是0指代碼(即此.py程序)本身的意思。

然后我們將代碼中0改為1 :

a=sys.argv[1]

保存后,再從控制臺窗口運行,這次我們加上一個參數(shù),輸入:test.py what

 

得到的結(jié)果就是我們輸入的參數(shù)what,看到這里你是不是開始明白了呢。

那我們再把代碼修改一下:

a=sys.argv[2:]

保存后,再從控制臺窗臺運行程序,這次多加幾個參數(shù),以空格隔開:

test.py a b c d e f

 

得到的結(jié)果為[‘b', 'c', 'd', 'e', 'f']

應該大徹大悟了吧。Sys.argv其實就是一個元組,里邊的項為用戶輸入的參數(shù),關(guān)鍵就是要明白這參數(shù)是從程序外部輸入的,而非代碼本身的什么地方,要想看到它的效果就應該將程序保存了,從外部來運行程序并給出參數(shù)。

這個例子是簡明python教程上的,明白它之后你就明白sys.argv[]了。

import sys def readfile(filename): #從文件中讀出文件內(nèi)容   '''''Print a file to the standard output.'''   f = file(filename)   while True:     line = f.readline()     if len(line) == 0:       break     print line, # notice comma 分別輸出每行內(nèi)容   f.close() # Script starts from here if len(sys.argv) < 2:   print 'No action specified.'   sys.exit() if sys.argv[1].startswith('--'):   option = sys.argv[1][2:]   # fetch sys.argv[1] but without the first two characters   if option == 'version': #當命令行參數(shù)為-- version,顯示版本號     print 'Version 1.2'   elif option == 'help': #當命令行參數(shù)為--help時,顯示相關(guān)幫助內(nèi)容     print '''''/ This program prints files to the standard output. Any number of files can be specified. Options include:  --version : Prints the version number  --help  : Display this help'''   else:     print 'Unknown option.'   sys.exit() else:   for filename in sys.argv[1:]: #當參數(shù)為文件名時,傳入readfile,讀出其內(nèi)容     readfile(filename)             
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 九江市| 静安区| 明星| 府谷县| 布尔津县| 大城县| 原平市| 司法| 剑川县| 寿宁县| 诏安县| 佳木斯市| 丰顺县| 贡山| 怀柔区| 宜兰县| 尚志市| 武城县| 克什克腾旗| 万盛区| 稷山县| 黑河市| 新密市| 绥宁县| 全南县| 忻州市| 蕉岭县| 白山市| 铜陵市| 凉城县| 犍为县| 新绛县| 玛纳斯县| 延川县| 察雅县| 恩平市| 靖西县| 丰台区| 名山县| 蒙城县| 济宁市|