如何将函数中用作命令行参数的IP地址传递给参数解析器?

2024-09-30 04:33:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个函数,它通过ping服务器来获取响应。我希望能够将函数to argument解析器中使用的IP地址作为命令行参数,而不是硬编码或将其作为用户输入。 当前该函数看起来像:

def get_sipresponse():
        var = input("Enter Opensips IP: ")
        p = sys.path.append("/home/asad.javed/")
        response = sip.ping(var)
        response.get('Status')
        print(response)
        return p, response

我使用参数解析器的主要函数如下所示:

def main():
        parser = ap.ArgumentParser()
        parser.add_argument('-s', '--start', help='start script', action='store_true')
        parser.add_argument('--getOSresponse', help='Opensips response', action='store_true')

        args = parser.parse_args()

        elif args.start
                for k,v in reversed_dictionary.items():
                        print(v, "=", k);time.sleep(5);
                        proc = subprocess.call([k], shell=True);time.sleep(5);
                        if proc != 0:
                                if proc < 0:
                                        print("Killed by signal!", -proc)
                                else:
                                        print("\nReturn code: \n", proc)
                        else:
                                print("\nSuccess\n");get_sipresponse()

        elif args.getOSresponse:
                get_sipresponse()

Tags: 函数parser解析器参数getresponsevardef
2条回答

在main中,在arg解析器中其他参数的设置下,添加以下行:

parser.add_argument(' ip')

然后将get_sipresponse()更改为:

def get_sipresponse(ip):
        p = sys.path.append("/home/asad.javed/")
        response = sip.ping(ip)
        response.get('Status')
        print(response)
        return p, response

最后,从main可以这样调用get_sipresponse

get_sipresponse(args.ip)

如果从get_sipresponse()返回“dict”:

def get_sipresponse():
        var = input("Enter Opensips IP: ")
        p = sys.path.append("/home/asad.javed/")
        response = sip.ping(var)
        response.get('Status')
        print(response)
        return {'ip': var , 
                'path': p, 
                'resp': response}

然后可以在main()函数中使用它

def main():
  target_ip = get_sipresponse()['ip']
  ......
  .....
  ...

相关问题 更多 >

    热门问题