2014-07-04 3 views
0

파일 이름, 열 번호를 사용하는 함수를 작성하고 싶습니다. 이것은 csv 파일에서 읽고 지정된 열의 값을 목록에 반환합니다. 빈 자리를 0으로 대체하고 헤더가 있으면 건너 뛸 필요가 있습니다. 나는 그것이 도움이되도록 약간의 도움이 필요하다. 감사합니다열로 csv 파일을 구문 분석하고 목록에 저장하십시오.

+1

파이썬에는이를위한'csv' 모듈이 있습니다. 그것 좀 봐! – DrV

답변

1

이것은

열은 0부터 번호가 매겨집니다
import csv 

def get_column(filename, n, header=True): 
    with open(filename, 'r') as csvfile: 
     rdr = csv.reader(csvfile) 
     # skip one row if header is True 
     if header: 
      next(rdr, None) 

     # take only the rows where the field exists 
     l = [ row[n] for row in rdr if len(row) > n] 
    return l 

, 즉 get_column("mycsv.csv", 0) 위의 코드는 단지 더 열 n이없는 모든 행을 무시 열 1.

의 내용을 반환해야 . 당신이 기본이 insted을 작성하려면, 다음으로 지능형리스트를 대체 :

l = [ row[n] if len(row) > n else None for row in rdr ] 

은 물론, 당신은 당신이 필요로하는 무엇에 None을 chenge 수 있습니다.

가장 안전한 옵션은 사용하는 것입니다 : 필드 행에 누락 된 경우

l = [ row[n] for row in rdr ] 

것은 그것이 예외가 발생합니다 때문이다.

관련 문제