根据python中的条件读取csv并写入新的csv

时间:2015-09-03 09:38:07

标签: python csv

我正在寻找以下

的一些指示

从已排序的csv中读取数据,并根据条件创建不同的csv文件。我的输入文件如下所示

Ip       Subnet            location
1.0.1.2  255.255.255.0    Argentina
1.0.1.3  255.255.255.0    Argentina
1.3.4.5  255.255.255.0    Belgium
1.2.4.5  255.255.255.0    Belgium
3.4.5.6  255.255.255.0    California
1.2.7.8  255.255.255.0    California

我想要的是我应该为每个位置获取一个csv文件(根据上面的输入文件3个文件) 当它正在读取输入文件时......当它找到不同的位置时,它应该开始创建新文件并写入数据......并再次找到它应该切换到新文件的不同位置

任何帮助实现上述目标都会非常有帮助......或者还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

以下脚本应该有效。它将根据当前国家/地区创建CSV文件名。它假设您的输入日志文件采用标准CSV格式:

import csv

with open('log.csv') as f_input:
    csv_input = csv.reader(f_input)
    headings = next(csv_input)

    country = ''
    f_output = None

    for cols in csv_input:
        if country != cols[2]:
            country = cols[2]

            if f_output:
                f_output.close()

            f_output = open(country + ".csv", "wb")
            csv_output = csv.writer(f_output)
            csv_output.writerow(headings)

        csv_output.writerow(cols)

    f_output.close()

因此,例如,您将获得一个名为Argentina.csv的文件,其中包含以下内容:

Ip,Subnet,location
1.0.1.2,255.255.255.0,Argentina
1.0.1.3,255.255.255.0,Argentina