删除CSV文件Python中的空白条目

时间:2013-10-01 23:42:05

标签: python csv

我需要从Excel中读取一个CSV文件,其行可以是任意长度。

问题是python保留了这些空白条目,但需要删除它们以用于将来的算法。下面是输出,我不想要空白条目。

     ['5', '1', '5', '10', '4', '']
     ['3', '1', '5', '10', '2', '']
     ['6', '1', '5', '10', '5', '2']
     ['9', '10', '5', '10', '7', '']
     ['8', '5', '5', '10', '7', '']
     ['1', '1', '5', '10', '', '']
     ['2', '1', '5', '10', '1', '']
     ['7', '1', '5', '10', '6', '4']
     ['4', '1', '5', '10', '3', '1']

3 个答案:

答案 0 :(得分:1)

这就像我写的那样功能,可以做你想做的事。肯定有一些方法。

def remove_blanks(a_list):
    new_list = []
    for item in a_list:
        if item != "":
            new_list.append(item)
    return new_list

答案 1 :(得分:1)

列表理解版本:

a = ['5', '1', '5', '10', '4', '']

[x for x in a if x != '']
Out[19]: ['5', '1', '5', '10', '4']

您可以通过csv读取步骤进行过滤来获得更好的服务。

答案 2 :(得分:1)

这是与csv库集成的列表理解:

import csv

with open('input.csv') as in_file:
    reader = csv.reader(in_file)
    result = [[item for item in row if item != ''] for row in reader]

print result