You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

代码修改步骤

第一步:改造get_sipresponse函数

移除内部的用户输入逻辑,改为接收IP地址作为入参:

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

第二步:添加IP地址命令行参数

在参数解析器中新增--opensips-ip参数,同时修复原主函数的语法缺失问题:

def main():
    # 缺的依赖提前导入,已导入可忽略
    import argparse as ap
    import time, subprocess, sys

    parser = ap.ArgumentParser()
    parser.add_argument('-s', '--start', help='start script', action='store_true')
    parser.add_argument('--getOSresponse', help='Opensips response', action='store_true')
    # 新增IP参数,required=True表示使用脚本必须传该参数,不需要强制传可以删掉required,加default="默认IP"
    parser.add_argument('--opensips-ip', required=True, help='OpenSIPS server IP address')

    args = parser.parse_args()

    # 修复原代码缺失的if判断和冒号语法错误
    if 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")
                # 传入解析到的IP参数
                get_sipresponse(args.opensips_ip)

    elif args.getOSresponse:
        # 传入解析到的IP参数
        get_sipresponse(args.opensips_ip)

调用示例

启动脚本时直接传入IP参数即可:

# 配合start参数使用
python your_script_name.py --start --opensips-ip 192.168.1.20
# 配合getOSresponse参数使用
python your_script_name.py --getOSresponse --opensips-ip 192.168.1.20

内容的提问来源于stack exchange,提问作者Asad Javed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 14:06:05