嗨我有一个txt文件有两列(中间有空格),例如:
IP1 MAC1
IP2 MAC2
IP3 MAC3
等等(这些将是实际的IP地址和MAC地址)
我需要一个知道IP1和MAC1在一行并且相关的循环的帮助。
我正在尝试编写一个使用循环的程序并使用第一列文本(IP地址)并登录到交换机并使用第二列值(MAC地址)在端口安全性中分配MAC。然后它转到下一行并获得第二个IP和MAC并执行相同的操作,直到文件结束。
我有登录和命令设置,但是我遇到从文本和循环中获取数据的问题,所以IP1知道它需要有MAC1。
答案 0 :(得分:2)
为了帮助您入门,我有一个例子。将ip和mac用空格分隔在名为" file.txt"的文件中,您可以运行以下代码:
with open('file.txt') as input_file:
for i, line in enumerate(input_file):
line = line.strip()
ip, mac = line.split()
print("ip: " + ip + ", mac: " + mac)
将输出以下内容:
ip: IP1, mac: MAC1
ip: IP2, mac: MAC2
ip: IP3, mac: MAC3
我同意Scott Hunter,但是你似乎没有尝试自己解决这个问题,这是令人惊讶的,因为你的IP和MAC的技术术语证明你可以google并找到你的答案(& #39; s我的所作所为。)
答案 1 :(得分:0)
#Open the file and make a list of tuples [(ip1, mac1), (ip2, mac2)..]
txt_file = open("text.txt", "r")
x = [x.rstrip().split() for x in file.readlines()]
#now make a dictionary where key = ip, v = MAC
dict_ = {k: v for k, v in x}
# You now have a dictionary where you can get the MAC from ip via
>>>dict_['ip address']
>>>MAC
希望有所帮助。
答案 2 :(得分:0)
希望这会为您提供另外的方法:
import pandas as pd
filename =r'c:\temp\input.txt'
list = pd.read_csv(filename, sep=' ', skiprows=0, header=None).fillna('')
for i, row in list.iterrows():
print '-'.join(p for p in row)
Output
IP1-MAC1
IP2-MAC2
IP3-MAC3