读取两个文件,一个csv和xls,并根据子网(csv)/ ip(xls)将csv中的列添加到xls匹配

时间:2016-07-28 18:07:00

标签: python excel python-3.x csv subnet

我正在尝试创建一个读取两个文件的程序,一个csv和xls,并使用一些python逻辑,根据ip / subnet匹配,将某些列从csv解析并传输到xls。

csv在B,C和D列中有子网,掩码和cidr。(csv有大约10k行,不会全部使用。)

xls在C列中有ip地址。(xls有5009行),每个ip地址对应于它所在的子网。

例如,csv colB,C,D中的此信息:

subnet        mask          cidr
10.120.10.0  255.255.255.0  /24

对应于xls colB中的这个信息(这些ip不是连续的。它们是随机行。)

10.120.10.12
10.120.10.13

我需要移植到xls文件的csv中的列是G,H,I,K和M.

我试图找到一种方法将xls文件中的每个ip与csv中的子网相匹配,并将csv列中的数据G,H,I,K和M带到该行的在xls中对应的ip。

很抱歉,如果这令人困惑,那么解决这个令人困惑的问题并且我只是一个初学者来蟒蛇。

1 个答案:

答案 0 :(得分:0)

首先,您可以尝试使用此脚本

import openpyxl
from xlrd import open_workbook
import csv

#To read XLX

book = open_workbook('IPADR.xlsx')
sheet = book.sheet_by_index(0)
keys = [sheet.cell(row_index, 0).value for row_index in xrange(sheet.nrows)]
print keys

# To read Csv 

exampleFile = open('sample.csv')
exampleReader = csv.reader(exampleFile)
for row in exampleReader:
        print row[0]