一、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...