Python 獲得命令行參數(shù)的方法

Python 獲得命令行參數(shù)的方法

如果想對python腳本傳參數(shù),python中對應的argc, argv(c語言的命令行參數(shù))是什么呢?

需要模塊:sys

參數(shù)個數(shù):len(sys.argv)

腳本名: ? ?sys.argv[0]

參數(shù)1: ? ??sys.argv[1]

參數(shù)2: ? ? sys.argv[2]

test.py

1importsys

2print"腳本名:", sys.argv[0]

3foriinrange(1,len(sys.argv)):

4print"參數(shù)", i, sys.argv[i]

>>>python test.py hello world

腳本名:test.py

參數(shù) 1 hello

參數(shù) 2 world

python中使用命令行選項:

例如我們需要一個convert.py腳本。它的作用是處理一個文件,并將處理后的結(jié)果輸出到另一個文件中。

要求該腳本滿足以下條件:

1.通過-i -o選項來區(qū)別參數(shù)是輸入文件還是輸出文件.

>>> python convert.py -i inputfile -o outputfile

2.當不知道convert.py需要哪些參數(shù)時,用-h打印出幫助信息

>>> python convert.py -h

getopt函數(shù)原形:

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

convert.py

02importsys, getopt

03opts, args=getopt.getopt(sys.argv[1:],"hi:o:")

04input_file=""

05output_file=""

06

07forop, valueinopts:

08ifop=="-i":

09input_file=value

10elifop=="-o":

11output_file=value

12elifop=="-h":

13usage()

14sys.exit()

代碼解釋:

a)?sys.argv[1:]為要處理的參數(shù)列表,sys.argv[0]為腳本名,所以用sys.argv[1:]過濾掉腳本名。

b)?"hi:o:": 當一個選項只是表示開關狀態(tài)時,即后面不帶附加參數(shù)時,在分析串中寫入選項字符。當選項后面是帶一個附加參數(shù)時,在分析串中寫入選項字符同時后面加一個":"號。所以"hi:o:"就表示"h"是一個開關選項;"i:"和"o:"則表示后面應該帶一個參數(shù)。

c)?調(diào)用getopt函數(shù)。函數(shù)返回兩個列表:opts和args。opts為分析出的格式信息。args為不屬于格式信息的剩余的命令行參數(shù)。opts是一個兩元組的列表。每個元素為:(選項串,附加參數(shù))。如果沒有附加參數(shù)則為空串''。

getopt函數(shù)的第三個參數(shù)[, long_options]為可選的長選項參數(shù),上面例子中的都為短選項(如-i -o)

長選項格式舉例:

--version

--file=error.txt

讓一個腳本同時支持短選項和長選項

getopt.getopt(sys.argv[1:], "hi:o:", ["version", "file="])

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • getopt:和C中的getopt()等價。optparse:2.7后已不推薦使用。argparse:基于optp...
    顧慎為閱讀 8,813評論 1 10
  • 需求:在命令行中通過參數(shù)控制日志的輸出級別 思路分析: 1.如果想要通過命令行傳入?yún)?shù),那么就要在被執(zhí)行文件中寫入...
    古佛青燈度流年閱讀 3,376評論 0 0
  • 我們在寫一個可變性比較大的腳本時候,很多情況下我們需要傳入很多個不同的參數(shù),就像我們在終端輸入pip --help...
    迷路的南南見鳥閱讀 1,921評論 0 0
  • http://python.jobbole.com/85231/ 關于專業(yè)技能寫完項目接著寫寫一名3年工作經(jīng)驗的J...
    燕京博士閱讀 7,787評論 1 118
  • 【今日話題】 你人生中遇到的最大的“困難”是什么?你是怎么挺過來的? 回首這么多年來遇到最大的困難 貌似是前年父...
    控心_ebed閱讀 172評論 0 0

友情鏈接更多精彩內(nèi)容