python 提供了getopt
模組來獲取命令列引數。
$ python test.py arg1 arg2 arg3
python 中也可以所用sys
的sys.ar**
來獲取命令列引數:
注:sys.ar**[0]
表示指令碼名。
1、使用sys模組
test.py
檔案**如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
print
('引數個數為:'
,len
(sys.ar**)
, '個引數。』)
print
('引數列表:'
,str
(sys.ar**)
)
執行以上**,輸出結果為:
$ python test.py arg1 arg2 arg3
引數個數為:
4 個引數。
引數列表:
['test.py'
,'arg1'
,'arg2'
,'arg3'
]
2、getopt模組
getopt
模組是專門處理命令列引數的模組,用於獲取命令列選項和引數,也就是sys.ar**
。命令列選項使得程式的引數更加靈活。支援短選項模式(-)
和長選項模式(—-)
。
該模組提供了兩個方法及乙個異常處理來解析命令列引數。
(1)getopt.getopt
方法
getopt.getopt
方法用於解析命令列引數列表,語法格式如下:
getopt.getopt(args, options[
, long_options]
)
方法引數說明:
該方法返回值由兩個元素組成:
(2)exception getopt.getopterror
在沒有找到引數列表,或選項的需要的引數為空時會觸發該異常。
異常的引數是乙個字串,表示錯誤的原因。屬性msg
和opt
為相關選項的錯誤資訊。
usage: test.py -i
-o
test.py
檔案**如下所示:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys, getopt
defmain
(ar**)
: inputfile =
'' outputfile =
''try
: opts, args = getopt.getopt(ar**,
"hi:o:",[
"ifile="
,"ofile="])
except getopt.getopterror:
print
'test.py -i -o '
sys.exit(2)
for opt, arg in opts:
if opt ==
'-h'
:print
'test.py -i -o '
sys.exit(
)elif opt in
("-i"
,"--ifile"):
inputfile = arg
elif opt in
("-o"
,"--ofile"):
outputfile = arg
print
'輸入的檔案為:'
, inputfile
print
'輸出的檔案為:'
, outputfile
if __name__ ==
"__main__"
: main(sys.ar**[1:
])
執行以上**,輸出結果為:
$ python test.py -h
usage: test.py -i
-o $ python test.py -i inputfile -o outputfile
輸入的檔案為: inputfile
輸出的檔案為: outputfile
解析命令列引數
include include include include int make argv const char astr,const char delimiters,char argvp void free argv char argvp int main int argc,char argv i...
Boost 解析命令列引數
boost中有乙個program options庫,專門用來解析程式命令列引數的。allow long 接受長名稱 allow short 接受短名稱 allow dash for short 允許短選項使用 allow slash for short 允許短選項使用 long allow adja...
python解析命令列引數
使用乙個先進的模組名為argparse,跟unix程式的命令列引數很像。直接對code做個筆記 import sys import argparse def main args print first name directory s args.first name print first para...