python getopt模块

        getopt模块是专门处理命令行参数的模块,用于获取命令行选项和参数。命令行选项使程序参数更加灵活,支持短格式命令模式(-)和长格式命令模式(--)。

import getopt
import sys


def help_msg():
    print('*' * 40)
    print('-h or --help= 指定server的ip地址')
    print('-p or --port= 指定server的连接port')
    print('*' * 40)

def main():
    options, args = getopt.getopt(sys.argv[1:], 'h:p:', ['port=', 'host=', 'help'])

    print(options)
    print(args)
    for name, value in options:
        if name in ('--help',):
            help_msg()
        if name in ('-h', '--host'):
            print("value: {0}".format(value))
        if name in ('-p', '--port'):
            print("value: {0}".format(value))


if __name__ == '__main__':
    main()

执行命令,查看帮助信息

python .\demo02.py --help

输出信息如下

[('--help', '')]
[]
****************************************
-h or --help= 指定server的ip地址
-p or --port= 指定server的连接port
****************************************

执行命令,传递参数

python .\demo02.py -h 192.168.1.222 -p 443

或者

python .\demo02.py --host=192.168.1.222 --port=443

结果如下:

[('-h', '192.168.1.202'), ('-p', '443')]
[]
value: 192.168.1.202
value: 443

这里可以看到args参数一直为空,args是个列表,其中的元素是那些不含'-'或'--'的参数

python .\demo02.py -h 192.168.1.202 -p 443 args1 args2 args2

输出结果

[('-h', '192.168.1.202'), ('-p', '443')]
['args1', 'args2', 'args2']
value: 192.168.1.202
value: 443

参考:

python中getopt模块是什么-Python学习网

import sys
import getopt
 
 
def main(argv):
    input_file = ""
    output_file = ""
    # "hi:o:": 短格式分析串, h 后面没有冒号, 表示后面不带参数; i 和 o 后面带有冒号, 表示后面带参数
    # ["help", "input_file=", "output_file="]: 长格式分析串列表, help后面没有等号, 表示后面不带参数; input_file和output_file后面带冒号, 表示后面带参数
    # 返回值包括 `opts` 和 `args`, opts 是以元组为元素的列表, 每个元组的形式为: (选项, 附加参数),如: ('-i', 'test.png');
    # args是个列表,其中的元素是那些不含'-'或'--'的参数
    opts, args = getopt.getopt(argv[1:], "hi:o:", ["help", "input_file=", "output_file="])
 
    for opt, arg in opts:
        if opt in ("-h", "--help"):
            print('script_2.py -i <input_file> -o <output_file>')
            print('or: test_arg.py --input_file=<input_file> --output_file=<output_file>')
            sys.exit()
        elif opt in ("-i", "--input_file"):
            input_file = arg
        elif opt in ("-o", "--output_file"):
            output_file = arg
    print('输入文件为:', input_file)
    print('输出文件为:', output_file)
 
    # 打印不含'-'或'--'的参数
    for i in range(0, len(args)):
        print('不含'-'或'--'的参数 %s 为:%s' % (i + 1, args[i]))
        
if __name__ == "__main__":
    main(sys.argv)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值