python 写命令行参数工具

最近写小工具,希望带参数可以返回指定的内容,如脚本名为tools.py 使用toos.py -ip '123.22.1.1' 可以返回IP的地址信息,toos.py -b 'www.baidu.com'可以查备案信息

尝试使用了argparse,未能实现功能。

import argparse


def ip(args):
    ip = args.IP
    print(ip)


def beian(args)
    beian = args.BEIAN
    print(beian)


def get_args():
    parser = argparse.ArgumentParser(description='some tools')
    parser.add_argument(
        '-ip', dest='IP', default=1, help='ip ', action="store")
    parser.add_argument(
        '-b', dest='BEIAN', default=1, help='Domain name registration information inquiry', action="store")
    parser.set_defaults(func=ip)
    parser.set_defaults(func=beian)
    args = parser.parse_args()
    args.func(args)
    return args

get_args()

这种方式是不可行的,最终只会有parser.set_defaults(func=beian)会生效,求大神指导

阅读 2.6k
1 个回答
import argparse

def get_args():
    parser = argparse.ArgumentParser(description='some tools')
    parser.add_argument('--ip', type=str, help=help, default='127.0.0.1')
    parser.add_argument('--b', type=str, help=help, default='www.baidu.com')
    args = parser.parse_args()
    return args

args = get_args()
print(args.ip, args.b)

运行:

xxx.py --ip 1.2.3.4 --b baidu.com # ('1.2.3.4', 'baidu.com')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题