python 命令列引數

2021-07-30 16:58:06 字數 1764 閱讀 9694

一、getopt模組

主要用到了模組中的函式:

options, args = getopt.getopt(args, shortopts, longopts=)

引數args:一般是sys.argv[1:]。過濾掉sys.argv[0],它是執行指令碼的名字,不算做命令列引數。

shortopts:短格式(-)。例如:」hp:i:」,h後面沒有冒號,表示後面不帶引數;p和i後面帶有冒號,表示後面帶引數。

longopts:長格式(- -)。例如:[「help」, 「ifile=」, 「ofile=」],help後面沒有等號,表示後面不帶引數;ifile和ofile後面帶冒號,表示後面帶引數。

返回值options是以元組為元素的列表,如

返回值args是個列表,其中的元素是那些不含』-『或』–』的引數,如

#coding:utf-8

import sys, getopt

# 用於消除文字中的換行符

# python test.py -i xx.txt -o zz.txt

defclear_line_breaks

(argv):

inputfile = ''

outputfile = ''

try:

opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])

except getopt.getopterror:

print

'test.py -i -o '

sys.exit(1)

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 '輸入的檔案為:'.decode('utf8'), inputfile

#print '輸出的檔案為:'.decode('utf8'), outputfile

b =

with open(inputfile) as f:

for line in f.read():

line = line.strip('\n')

b = ''.join(b)

with open(outputfile, 'w') as c:

c.write(b)

if __name__ == "__main__":

clear_line_breaks(sys.argv[1:])

關於sys.exit()

1. sys.exit(n) 退出程式引發systemexit異常, 可以捕獲異常執行些清理工作. n預設值為0, 表示正常退出. 其他都是非正常退出. 還可以sys.exit(「sorry, goodbye!」); 一般主程式中使用此退出.

2. os._exit(n), 直接退出, 不拋異常, 不執行相關清理工作. 常用在子程序的退出.

3. exit()/quit(), 跑出systemexit異常. 一般在互動式shell中退出時使用.

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 命令列引數

python test py arg1 arg2 arg3python 中也可以所用sys的sys.argv來獲取命令列引數 注 sys.argv 0 表示指令碼名。test.py 檔案 如下 usr bin python coding utf 8 import sysprint 引數個數為 len...