日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python中getopt()函數用法詳解_python

作者:eliwang ? 更新時間: 2022-12-27 編程語言

通過getopt模塊中的getopt( )方法,我們可以獲取和解析命令行傳入的參數

一、函數用法

  • getopt(args, shortopts, longopts=[ ])

    • args:固定寫法sys.argv[1:]
    • shortopts:短參
      • 字符串類型,限制命令行可傳入的短參名稱(命令行可不傳參,如果傳參,必須是指定的參數名,否則會報錯)
      • 參數名必須為單字符,前面使用單短橫線(-)
      • 命令行寫法:
        • -a  不帶參數值形式
        • -b test_b  帶參數值形式(中間空格可省略,個人推薦帶上空格,更容易區分)
        • -c 'test c'  參數值含空格,需要使用引號
      • 按照上述命令行寫法,shortopts的寫法可以是:'ab:c:'
        • 如果帶參數值,則需要在參數名后面帶上':'
        • 各參數名先后順序無所謂,比如'b:ac:'
    • longopts:長參
      • 數組類型,元素為字符串,限制命令行可傳入的長參名稱(命令行可不傳參)
      • 參數名前使用雙短橫線(--)
      • 命令行寫法:
        • --aa  不帶參數值形式
        • --bb=test_bb  帶參數值形式
        • --cc='test cc'  帶參數值形式,參數值含空格,需要使用引號
      • 按上述命令行寫法,longopts寫法可以是:['aa', 'bb=', 'cc=']
        • 如果帶參數值,則需要在參數名后面帶上'='
        • 各參數名先后順序無所謂

二、示例

代碼

#! /usr/bin/env python
# -*- coding: utf-8 -*-

import sys
from getopt import getopt

opts, args = getopt(sys.argv[1:], 'ab:', ['aa', 'bb='])

# 解析出的參數名和值,格式:[(參數1,參數值1), (參數2,參數值2)...]
print(f'opts: {opts}')

# 未解析出來的參數值部分
print(f'args: {args}')

命令行

python main.py -a -b 'test short_b' --aa --bb=long_bb xxxx

輸出:

opts: [('-a', ''), ('-b', 'test short_b'), ('--aa', ''), ('--bb', 'long_bb')]
args: ['xxxx']

對于沒有參數值的a和aa參數,解析出的參數值都為空字符串'',由于bb參數的參數值long_bb和xxxx之間有空格,所以未解析出

命令行

python main.py -b=test_b

輸出:

opts: [('-a', ''), ('-b', 'test short_b'), ('--aa', ''), ('--bb', 'long_bb')]
args: ['xxxx']

參數可傳,也可省略,如果傳,則必須是代碼中所指定的

原文鏈接:https://www.cnblogs.com/eliwang/p/16940309.html

欄目分類
最近更新