以行和列为基础读取和比较2个CSV文件

时间:2014-10-29 03:28:32

标签: python excel csv

我有两个CSV文件。 data.csv和data2.csv。

我想首先将两个数据文件删除到我感兴趣的数据。我已经用data.csv找出了这个部分。然后我想按行进行比较,确保如果缺少一行来添加它。

接下来我想查看第2列。如果有值,那么我想写第3列,如果第3列中有数据,则写入4,等等。

我目前的节目看起来像母猪。需要一些指导

哦,我正在使用Python V3.4

    __author__ = 'krisarmstrong'

#!/usr/bin/python

import csv

searched = ['aircheck', 'linkrunner at', 'onetouch at']


def find_group(row):
    """Return the group index of a row
        0 if the row contains searched[0]
        1 if the row contains searched[1]
        etc
        -1 if not found
    """
    for col in row:
        col = col.lower()
        for j, s in enumerate(searched):
            if s in col:
                return j
        return -1


inFile = open('data.csv')
reader = csv.reader(inFile)
inFile2 = open('data2.csv')
reader2 = csv.reader(inFile2)
outFile = open('data3.csv', "w")
writer = csv.writer(outFile, delimiter=',', quotechar='"', quoting=csv.QUOTE_ALL)

header = next(reader)
header2 = next(reader2)


"""Built a list of items to sort. If row 12 contains 'LinkRunner AT' (group 1),
    one stores a triple (1, 12, row)
    When the triples are sorted later, all rows in group 0 will come first, then
    all rows in group 1, etc.
"""

stored = []
writer.writerow([header[0], header[3]])

for i, row in enumerate(reader):
    g = find_group(row)
    if g >= 0:
        stored.append((g, i, row))
stored.sort()

for g, i, row in stored:
    writer.writerow([row[0], row[3]])

inFile.close()
outFile.close()

1 个答案:

答案 0 :(得分:0)

也许试试:

import csv
with open('some.csv', 'rb') as f:
    reader = csv.reader(f)
    for row in reader:
        col1.append(row[0])
        col2.append(row[1])

for i in xrange(len(col1))
    if col1[i] == '':
        #thing to do if there is nothing for col1
    if col2[i] == '':
        #thing to do if there is nothing for col2

这是一个开始于"确保如果缺少一行来添加它"。