我有这个函数,它可以pinging服务器以获取其响应。我希望能够将函数中使用的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我使用参数解析器的main函数如下所示:
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()发布于 2021-09-30 07:18:37
在主目录中,在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)发布于 2021-09-30 07:00:44
如果你从你的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']
......
.....
...https://stackoverflow.com/questions/69387294
复制相似问题