以字符串形式发送与读取字符串

时间:2016-08-30 17:28:32

标签: python string file io

我有一个包含以下内容的文本文件:

IP_ADD = "10.10.150.3"
BACKUP_IP = "10.10.150.4"

以及阅读它的代码:

counter = 0
wordList = [None] * 100

with open("config.txt") as f:
    content = f.read().splitlines()

for line in content:
    line = line.split(' ',2)[-1]
    wordList[counter] = line
    counter = counter + 1

这将只返回带有wordList中的引号的IP地址.. IE

wordList[0] = "10.10.150.3"

然后我尝试使用OID和该IP地址发送SNMP命令。 IE

agent.set(MY_OID,wordList[0])

但这不起作用。如果我将其更改为以下内容:

agent.set(MY_OID,"10.10.150.3")

它有效。我在这里缺少什么?

2 个答案:

答案 0 :(得分:3)

根据您所写的内容,您的文件似乎在引号中包含IP地址。 因此

 line = line.split(' ',2)[-1]

将返回引号中的IP地址作为字符串,又名

 "\"10.0.0.1\""

这是您通过电汇发送的内容,这可能不是您打算做的。

答案 1 :(得分:0)

你几乎得到它,你只需要删除IP周围的双引号。使用strip('"')来执行此操作。

line.split(' ',2)[-1].strip('"')

你的代码看起来太破旧了,没有冒犯。你正在做许多不必要的事情。你可以这么简单地做到这一点:

wordList = []
with open('config.txt') as file:
    for line in file:
        wordList.append(line.split()[-1].strip('"'))

print(wordList)

输出:

['10.10.150.3', '10.10.150.4']