Python 命令列引數

2021-08-16 15:25:52 字數 2374 閱讀 2772

$ python test

.py arg1 arg2 arg3

python 中也可以所用syssys.argv來獲取命令列引數:

注:sys.argv[0] 表示指令碼名。

test.py 檔案**如下:

#!/usr/bin/python

# -*- coding: utf-8 -*-

import

sysprint

'引數個數為:'

,len

(sys

.argv

),'個引數。'

print

'引數列表:'

,str

(sys

.argv

)

執行以上**,輸出結果為:

$ python test

.py arg1 arg2 arg3

引數個數為:

4個引數。

引數列表:

['test.py'

,'arg1'

,'arg2'

,'arg3'

]

getopt模組是專門處理命令列引數的模組,用於獲取命令列選項和引數,也就是sys.argv。命令列選項使得程式的引數更加靈活。支援短選項模式(-)和長選項模式(--)。

該模組提供了兩個方法及乙個異常處理來解析命令列引數。

getopt.getopt 方法用於解析命令列引數列表,語法格式如下:

getopt

.getopt

(args

,option

,[long_options

])

方法引數說明:

另外乙個方法是 getopt.gnu_getopt,這裡不多做介紹。

在沒有找到引數列表,或選項的需要的引數為空時會觸發該異常。

異常的引數是乙個字串,表示錯誤的原因。屬性msgopt為相關選項的錯誤資訊。

假定我們建立這樣乙個指令碼,可以通過命令列向指令碼檔案傳遞兩個檔名,同時我們通過另外乙個選項檢視指令碼的使用。指令碼使用方法如下:

usage

:test

.py -i

-o

test.py 檔案**如下所示:

#!/usr/bin/python

# -*- coding: utf-8 -*-

import

sys,

getopt

defmain

(argv

):inputfile =''

outputfile =''

try:

opts

,args

=getopt

.getopt

(argv

,"hi:o:"

,["ifile="

,"ofile="

])except

getopt

.getopterror

:print

'test.py -i -o '

sys.

exit(2

)for

opt,

arg

inopts: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

.argv[1

:])

執行以上**,輸出結果為:

$ python test

.py -h

usage

:test

.py -i

-o $ python test

.py

-i inputfile

-o outputfile

輸入的檔案為:

inputfile

輸出的檔案為:

outputfile

python 命令列引數

本篇將介紹python中sys,getopt模組處理命令列引數 如果想對python指令碼傳引數,python中對應的argc,argv c語言的命令列引數 是什麼呢?需要模組 sys 引數個數 len sys.argv 指令碼名 sys.argv 0 引數1 sys.argv 1 引數2 sys....

python 命令列引數

python呼叫時,可以直接在命令列中加入呼叫引數,通過sys模組的argv來進行解析,如下 lixinglei bogon someother python param.py port 8080 username lixinglei lixinglei bogon someother vim pa...

python 命令列引數

一 getopt模組 主要用到了模組中的函式 options,args getopt.getopt args,shortopts,longopts 引數args 一般是sys.argv 1 過濾掉sys.argv 0 它是執行指令碼的名字,不算做命令列引數。shortopts 短格式 例如 hp i...