2013-10-01 2 views
0

Excel에서 임의의 길이가 될 수있는 행이있는 CSV 파일을 읽어야합니다.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'] 

답변

1

이것은 원하는대로 할 수있는 기능만큼이나 자세합니다. 확실히 더 매끄러운 방법이 있습니다.

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

목록 이해 버전 :

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

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

당신은 더 나은 대신 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 
: 여기
0

csv 라이브러리와 통합 지능형리스트입니다
관련 문제