亚洲精品久久久久影-亚洲精品久久久久影院-亚洲精品久久久久中文-亚洲精品久久久久中文字幕一区-亚洲精品久久久久综合91

python世界

Python的 命令行參數

本文發布日期:2020-07-17 00:47:22

Python 提供了 getopt 模塊來獲取命令行參數。

$ python test.py arg1 arg2 arg3

Python 中也可以所用 sys 的 sys.argv 來獲取命令行參數:

  • sys.argv 是命令行參數列表。

  • len(sys.argv) 是命令行參數個數。

注:sys.argv[0] 表示腳本名。

實例

test.py 文件代碼如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import sys

print '參數個數為:', len(sys.argv), '個參數。'
print '參數列表:', str(sys.argv)

執行以上代碼,輸出結果為:

$ python test.py arg1 arg2 arg3
參數個數為: 4 個參數。
參數列表: ['test.py', 'arg1', 'arg2', 'arg3']

getopt模塊

getopt模塊是專門處理命令行參數的模塊,用于獲取命令行選項和參數,也就是sys.argv。命令行選項使得程序的參數更加靈活。支持短選項模式(-)和長選項模式(--)。

該模塊提供了兩個方法及一個異常處理來解析命令行參數。

getopt.getopt 方法

getopt.getopt 方法用于解析命令行參數列表,語法格式如下:

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

方法參數說明:

  • args: 要解析的命令行參數列表。

  • options : 以字符串的格式定義,options 后的冒號 : 表示如果設置該選項,必須有附加的參數,否則就不附加參數。

  • long_options : 以列表的格式定義,long_options 后的等號 = 表示該選項必須有附加的參數,不帶冒號表示該選項不附加參數。

  • 該方法返回值由兩個元素組成: 第一個是 (option, value) 元組的列表。 第二個是參數列表,包含那些沒有 - 或 -- 的參數。

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


Exception getopt.GetoptError

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

異常的參數是一個字符串,表示錯誤的原因。屬性 msg 和 opt 為相關選項的錯誤信息。

實例

假定我們創建這樣一個腳本,可以通過命令行向腳本文件傳遞兩個文件名,同時我們通過另外一個選項查看腳本的使用。腳本使用方法如下:

usage: test.py -i <inputfile> -o <outputfile>

test.py 文件代碼如下所示:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import sys, getopt

def main(argv):
   inputfile = ''
   outputfile = ''
   try:
      opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
   except getopt.GetoptError:
      print 'test.py -i <inputfile> -o <outputfile>'
      sys.exit(2)
   for opt, arg in opts:
      if opt == '-h':
         print 'test.py -i <inputfile> -o <outputfile>'
         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 <inputfile> -o <outputfile>

$ python test.py -i inputfile -o outputfile
輸入的文件為: inputfile
輸出的文件為: outputfile
免責聲明:本站部分圖片,文章,均來源于網絡收集,版權歸原作者所有,如有侵權,請與我聯系刪除!
主站蜘蛛池模板: 欧美日韩一区二区三区四区在线观看| 国产高清网站| 国产精品入口麻豆高清在线| 欧美一二三区在线| 一级做a级爰片性色毛片视频| 中国一级毛片欧美一级毛片| 国产a级网站| 黄色日韩网站| 国产欧美精品| 久久精品中文| 嫩草视频在线看| 中国性视频| a级毛片在线免费看| 中文无码久久精品| 在线观看亚洲网站| 欧美激情精品久久久久久久| 国产综合自拍| 美女黄色一级毛片| 国产高清精品入口麻豆| 青草免费免费观看视频在线| 8050午夜一级二级全黄| 一级做a爰片久久毛片免费| 日本va视频| 亚洲第一在线播放| 欧美日韩成人午夜免费| 国产人成77777视频网站| 国产第一页精品| 国产福利在线观看第二区| 怡红院日本一道日本久久| 爱爱小视频在线观看| 成人国内精品久久久久影 | 亚洲精品国产成人| 多女多p多杂交视频在线观看| 欧美一级毛片在线看视频| 欧美日韩视频在线一区二区| 欧美刺激午夜性久久久久久久| 性强烈欧美一级毛片| 真人实干一级毛片aa免费| 特级毛片aaaaaa蜜桃| 特级毛片aaaaaa蜜桃| 看黄a大片 免费|