我希望使用系统IP地址保存配置

时间:2014-10-30 20:11:53

标签: python networking configuration

我是Python新手,刚刚成功完成了编写和测试脚本的工作,该脚本将执行以下操作:

  1. Telnet进入交换机。
  2. 使用提供的凭据登录。
  3. 打开一个文件,然后将命令的输出重定向到它。
  4. 完成后从交换机注销。
  5. 我希望它能做什么:

    我希望我的脚本使用交换机的IP地址在指定目录中创建文件。与IP地址为192.168.1.30的交换机配置一样,应保存为192.168.1.30.txt。

    以下是我脚本的一部分

    ============================

    #!/usr/bin/python
    
    import pexpect
    import datetime
    
    HOST = raw_input ("Enter the IP Address Of the switch:")
    user=admin
    password=admin
    
    child = pexpect.spawn ('telnet', [HOST])
    child.logfile = open("/home/tester/scripts/config.txt", "w")
    

    ==============================

    如您所见,如果我运行上述脚本,则通过脚本发送的命令输出将保存到config.txt文件中。如果telnet进入另一个开关,将保存内容,并保存新开关的内容。所以,我希望脚本使用用户输入的IP地址,然后使用IP地址作为文件名将命令的输出保存在不同的文件中,这样文件的内容就不会被覆盖。 / p>

    任何建议都将不胜感激!

    谢谢

1 个答案:

答案 0 :(得分:0)

由于HOST是字符串"192.168.1.30",并且您希望将文件命名为"/home/tester/scripts/192.168.1.30.txt",因此您可以使用简单的字符串连接来执行此操作:

path = "/home/tester/scripts/" + HOST + ".txt"

......或者更好,string formatting

path = "/home/tester/scripts/{}.txt".format(HOST)

然后:

child.logfile = open(path, "w")

(当然,如果您愿意,您也可以在format表达式的中间进行连接或open,但我认为这种方式更具可读性。)< / p>