命令列引數的使用

2021-10-02 18:26:48 字數 2182 閱讀 8085

對於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都用於確定實際傳遞了...