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

Reading two files, a csv and xls, and bring columns from csv to xls based on subnet(csv)/ip(xls) match

我正在尝试制作一个程序来读取两个文件,一个 csv 和 xls,并使用一些 python 逻辑来解析某些列并将其从 csv 传输到 xls,基于 ip/subnet 匹配。

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.

抱歉,如果这让您感到困惑,这是一个需要解决的令人困惑的问题,我只是 python 的初学者。

首先您可以试试这个脚本

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]