如何连接文件中的字符串和变量?

How do I concat strings and variables in a file?

我正在开始 devops 和 Python 编码(我是网络工程师,而不是开发人员)所以如果我的问题太基础,我提前道歉。

我正在编写一个代码,将一个完全限定的域名转换为一个 ip 地址列表,然后程序应该将这些 ips 写入一个文件,将它们中的每一个插入不同的行,最重要的是, 每个新行还应该包含一些预定义的字符串 "network device commands".

然后,我的代码将获取此文件,连接(使用 NETCONF)到某些网络设备并执行文件中的命令。

现在,我的代码是:

import os
import socket
from netconf.os import Device
from netconf.utils.config import Config

# Variables Declaration Section
domain = raw_input('Enter the domain name you want to resolve: ')
device_management = raw_input('Enter the device Management IP address: ')
device_user = raw_input('Enter the device admin account: ')
device_pass = raw_input('Enter the device admin account password: ')

# DNS Resolution Section
ip_list = list()
try:
    ip_list = socket.gethostbyname_ex(domain)
    print "Resolving addresess"
except socket.gaierror, err:
    print "Domain resolution error, please check network connectivity"
    ip_list = ()
if ip_list != ():
    print "Domain name resolved"
else:
    print "Error: List of IP address is empty"
    exit()

# Initial list clean up section (ip_list contains ips and words, need to filter)
cleaned_ip_list = ip_list[2]

# Creating the Device Template Config file
file = open("device_config.txt", "w")
for i in range(len(cleaned_ip_list)):
    a=None
    file.write( "'set address '+'a'+(a+1)+' '+cleaned_ip_list[i]\n")
file.close()

我现在遇到的问题是 file.write 行,按照代码中的原样编写该行很简单,而不是插入变量并将它们与字符串连接。

我尝试了几种不同的组合,但都没有成功。

您目前正在编写单个字符串文字而不是串联字符串。我建议使用 format() 方法。

file.write('set address {}{} {}\n'.format(a, a+1, cleaned_ip_list[i]))

花括号 {} 将替换为 format() 的相应参数。

我们来看看有问题的那一行:

file.write( "'set address '+'a'+(a+1)+' '+cleaned_ip_list[i]\n")

您正在尝试编写 String 的部分内容,其中散布着变化的值 (variables)。

file.write( "set address " + a + (a+1) + " " + cleaned_ip_list[i] + "\n")
file.write('set address ' + a +' '+ (a + 1) +' '+cleaned_ip_list[i] +'\n' )

我觉得应该是这样的。