• <samp id="jobfq"><output id="jobfq"><kbd id="jobfq"></kbd></output></samp>
    <font id="jobfq"><label id="jobfq"><sup id="jobfq"></sup></label></font>
    <mark id="jobfq"></mark>
  • 鍍金池/ 問答/Python/ python 寫命令行參數工具

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

    回答
    編輯回答
    陌南塵
    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
    少妇宾馆半推半就激情