鍍金池/ 問答/Python/ python 寫命令行參數(shù)工具

python 寫命令行參數(shù)工具

最近寫小工具,希望帶參數(shù)可以返回指定的內(nèi)容,如腳本名為tools.py 使用toos.py -ip '123.22.1.1' 可以返回IP的地址信息,toos.py -b 'www.baidu.com'可以查備案信息

嘗試使用了argparse,未能實現(xiàn)功能。

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)會生效,求大神指導(dǎo)

回答
編輯回答
陌南塵
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')
2018年2月5日 00:56