getopt模块

python getopt的使用





getopt.getopt(args, options[, long_options]) #options 中不包含-或--

import getopt


s='ping -c 12 -t 1.0 -6 -s 1024 192.168.0.1'

sys.argv=s.split()

#单字符作为选项放在一个字符串中

getopt.getopt(sys.argv[1:],'c:t:s:6')  # 'c:t:s:6'中的选项顺序也会影响到结果。如果是'c:t:6:s',则结果是:([('-c', '12'), ('-t', '1.0'), ('-6', '-s')], ['1024', '192.168.0.1'])


结果:([('-c', '12'), ('-t', '1.0'), ('-6', ''), ('-s', '1024')], ['192.168.0.1']) # 第一项是元组列表;第二项是列表
说明:
'c:'表示选项列表里,紧随'c'之后的元素与'c'组成一个元组.'t:'和's:'的含义与'c'相同.
'6'表示选项列表里,与'6'组成元组的元素是''(空字符).
-----以上所示的选项是指使用单字符作为选项.

s='ping -c 12 -t 1.0 -6 --size 1024 --help 192.168.0.1'

sys.argv=s.split()

#长字符作为选项放在一个列表中

getopt.getopt(sys.argv[1:],'c:6t:',['size=','help'])
结果:([('-c', '12'), ('-t', '1.0'), ('-6', ''), ('--size', '1024'), ('--help', '')], ['192.168.0.1'])
说明:
--'c:'、't:'的含义如上所述.'6'的含义如上.
--对于字符串选项,'size='表示该字符串后所随着的字符串('1024')与'size'组成一个元组(注意'='号),'help'表示该字符串与空字符组成一个元组('--help', '')
getopt 模块是 Python 标准库中的一个模块,用于解析命令行参数。它提供了一种标准的命令行参数解析方式,可以方便地处理各种参数类型,如短选项、长选项和参数值等。 getopt 模块的主要函数是 getopt(),它的语法如下: ```python getopt.getopt(args, options, long_options=[]) ``` 其中,args 是一个命令行参数列表,options 是一个表示短选项的字符串,long_options 是一个表示长选项的列表。函数返回两个值:一个由 (option, value) 元组组成的列表和一个剩余的参数列表。 下面是一个简单的例子: ```python import getopt import sys def main(argv): input_file = '' output_file = '' 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"): input_file = arg elif opt in ("-o", "--ofile"): output_file = arg print('Input file is:', input_file) print('Output file is:', output_file) if __name__ == "__main__": main(sys.argv[1:]) ``` 在该例子中,我们定义了两个参数:-i 和 -o,分别表示输入文件和输出文件。当我们在命令行中执行该脚本时,可以指定这两个参数: ``` python test.py -i input.txt -o output.txt ``` 然后,脚本会解析这两个参数,并输出它们的值。如果输入参数不正确,脚本会输出帮助信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值