對於tensorflow而言有單獨的tf.flag用法
在shell等執行指令碼時,可以在執行.py檔案後跟上一部分引數供指令碼使用,例如乙個檔案處理程式test.py,可以將需要處理的檔案路徑寫入命令列引數中,每次使用時在命令列輸入
python test.py -'home/workplace/data.doc'
即可執行程式處理data.doc檔案,增加程式通用性
分為兩個步驟:
1.取得命令列引數
2.對命令列引數進行分析
1. 取得命令列引數
在使用之前,首先要取得命令列引數。使用sys模組可以得到命令列引數。
例:乙個get.py檔案如下:
import sys
print sys.ar**
在shell命令列輸入
python get.py -o t -
-help cmd file1 file2
執行結果列印
[
'get.py'
,'-o'
,'t'
,'--help'
,'cmd'
,'file1'
,'file2'
]
可見,所有命令列引數以空格為分隔符,都儲存在了sys.ar**列表中。其中第1個為指令碼的檔名。
-o
-oa-obbbb
-o bbbb
-o "a b"
對於長格式,"–「號後面要跟乙個單詞。如果還有些選項的附加引數,後面要緊跟」=",再加上引數。"="號前後不能有空格。如以下是正確的:
-
-help
=file1
-
-help
=file1--
help
=file1--
help
= file1--
help
= file1
2. 如何使用命令列引數進行分析
例如模組test1.py:
import getopt, sys
opts, args = getopt.getopt(sys.ar**[1:
],"ho:",[
"help"
,"output="])
#"ho:"也可以寫成'-h-o:'
print(opts)
print
(args)
用上面解釋的乙個命令列例子執行:
python test1.py -h -o file--
help
--output=out file1 file2
opts的輸出結果為:
[
('-h',''
),('-o'
,'file'),
('--help',''
),('--output'
,'out'
)]
處理所使用的函式叫getopt(),因為是直接使用import匯入的getopt模組,所以要加上限定getopt才可以。
使用sys.ar**[1:]過濾掉第乙個引數(它是執行指令碼的名字,不應算作引數的一部分)。
使用短格式分析串"ho:"。當乙個選項只是表示開關狀態時,即後面不帶附加引數時,在分析串中寫入選項字元。當選項後面是帶乙個附加引數時,在分析串中寫入選項字元同時後面加乙個":"號。所以"ho:"就表示"h"是乙個開關選項;"o:"則表示後面應該帶乙個引數。
使用長格式分析串列表:[「help」, 「output=」]。長格式串也可以有開關狀態,即後面不跟"="號。如果跟乙個等號則表示後面還應有乙個引數。這個長格式表示"help"是乙個開關選項;"output="則表示後面應該帶乙個引數。
呼叫getopt函式。函式返回兩個列表:opts和args。opts為分析出的格式資訊。args為不屬於格式資訊的剩餘的命令列引數,即不是按照getopt()裡面定義的長或短選項字元和附加引數以外的資訊。opts是乙個兩元組的列表。每個元素為:(選項串,附加引數)。如果沒有附加引數則為空串』』。
整個過程使用異常來包含,這樣當分析出錯時,就可以列印出使用資訊來通知使用者如何使用這個程式。
命令列引數的作用 go 命令列引數
使用 flag 包獲取命令列引數,控制程式執行 主要函式 flag.string flag.strin ar flag.int flag.intvar flag.float64 flag.float64var flag.bool flag.boolvar p2,p3 p1 命令列引數標誌,flag ...
命令列引數
c 程式設計師參考 main方法可以使用引數,在這種情況下它採用下列形式之一 static int main string args static void main string args main方法的引數是表示命令行引數的string陣列。通常通過測試length屬性來檢查引數是否存在,例如 ...
命令列引數
c程式中的mian具有兩個形參。int main int argc,char argv argc 命令列引數的數目 argv 指向一組引數值的第乙個元素 每個元素都是指向乙個引數文字的指標 指標陣列 每個元素都是乙個字元指標,陣列末尾是乙個null指標,argc的值和這個null都用於確定實際傳遞了...