我有一个包含以下内容的文本文件:
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")
它有效。我在这里缺少什么?
答案 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']