从具有多列的txt文件协助数据

时间:2017-06-01 20:47:20

标签: python python-2.7 loops

嗨我有一个txt文件有两列(中间有空格),例如:

IP1 MAC1
IP2 MAC2
IP3 MAC3

等等(这些将是实际的IP地址和MAC地址)

我需要一个知道IP1和MAC1在一行并且相关的循环的帮助。

我正在尝试编写一个使用循环的程序并使用第一列文本(IP地址)并登录到交换机并使用第二列值(MAC地址)在端口安全性中分配MAC。然后它转到下一行并获得第二个IP和MAC并执行相同的操作,直到文件结束。

我有登录和命令设置,但是我遇到从文本和循环中获取数据的问题,所以IP1知道它需要有MAC1。

3 个答案:

答案 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