在python中排序csv文件方面需要帮助

时间:2015-09-02 09:16:03

标签: python sorting csv

我对脚本非常陌生。目前我正在编写一个脚本来读取不同文件中的数据,然后合并,排序和提取特定数据。

现在我不得不使用我的第四列数据来排序csv文件。下面是我正在使用的代码

*

ifile = open('one.csv', 'r')
reader = csv.reader(ifile, delimiter=',')
sortedlist = sorted(reader, key=operator.itemgetter(3))
with open("Newfile.csv", "wb") as f:
         fileWriter = csv.writer(f, delimiter=',')
         for row in sortedlist:
             fileWriter.writerow(row)

当我用第一列对csv进行排序时,上面的代码正常工作....." operator.itemgetter(0)"。

但是当我把(3)或者除了0之外的任何东西......它给出如下错误

IndexError:列表索引超出范围

我的csv文件看起来像

IP_range,Mask,Ad1,Ad2,Ad3
10.0.140.0, 255.255.0.0, 199u, Seattle, Fourth Avenue
10.0.140.1, 255.255.0.0, 193u, Windsor, Popular Avenue

我无法理解这个问题。我试过不同的分隔符......但没有运气

1 个答案:

答案 0 :(得分:0)

尝试使用list comprehension删除错误的格式化线

同时在阅读文件时使用with语句。

import csv
import operator
with open('one.csv', 'r') as ifile:
    ireader = [i for i in csv.reader(ifile, delimiter=',') if len(i) >3]  #covert works here
    sortedlist = sorted(ireader, key=operator.itemgetter(3))
    with open("Newfile.csv", "wb") as f:
         fileWriter = csv.writer(f, delimiter=',')
         for row in sortedlist:
             fileWriter.writerow(row)