开发者

python中getopt()函数用法详解

开发者 https://www.devze.com 2022-12-01 09:35 出处:网络 作者: eliwang
目录一、函数用法getopt(args,shortopts,longopts=[])二、示例通过getopt模块中的getopt()方法,我们可以获取和解析命令行传入的参数一、函数用法geto...
目录
  • 一、函数用法
  • getopt(args, shortopts, longopts=[ ])
  • 二、示例

通过getopt模块中的getopt( )方法,我们可以获取和解析命令行传入的参数

一、函数用法

  • getopt(args, shortopts, lon编程客栈gopts=[ ])

    • args:固定写法sys.argv[1:]
    • shortopts:短参
      • 字符串类型,限制命令行可传入的短参名称(命令行可不传开发者_C培训参,如果传参,必须是指定的参数名,否则会报错)
      • 参数名必须为单字符,前面使用单短横线(-)
      • 命令行写法:
        • -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 -*-

im编程客栈port sys
from getopt import getopt

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

# 解析出的参数名和值,格式:[(参数1,参数值1),python (参数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: [(&编程客栈#39;-a', ''), ('-b', 'test short_b'), ('--aa', ''), ('--bb', 'long_bb')]

args: ['xxxx']

参数可传,也可省略,如果传,则必须是代码中所指定的

到此这篇关于python中getopt()函数用法的文章就介绍到这了,更多相关python getopt()函数用法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号