• 파이썬으로 csv 파일 읽기

    2021. 6. 26.

    by. Jacob Lee

    728x90

     


     

    CSV 파일 읽기

    회사에서 운영하는 프로젝트에는 비회원을 초대하면 비회원이 가입시 초대 되었던 어떤 그룹으로 자동으로 할당이 되는 기능이 있는데, 보통 비즈니스 로직에서는 일 대 일로 초대를 하지만, 491명이라는 다수를 한번에 초대해야 하는 일이 생겼다. 로직을 작성하기 전, 초대 할 491명의 비회원 이메일을 전달 받았는데, 파이썬으로 csv 파일을 읽고 다루는 법을 정리해보려 한다.

     

    CSV 파일이란

    Csv 파일은 Comma-separated values, 즉 쉼표(comma)로 각 값들을 구분하기 위한 파일이다.

    파일의 각 라인이 하나의 데이터 레코드인 셈이다. 각 레코드는 쉼표를 사용함으로써 하나 이상의 필드를 구분한다.

     

    CSV 파일 읽어 들이기

    파이썬에서는 open 함수라는 내장 함수를 사용해 특정 파일의 입출력을 관리할 수 있다.

     

    사용하는 법은 매우 간단한데, 다음과 같이 작성해주면 된다.

    import csv
    
    with open('invite.csv', 'r') as f:
        for l in f:
            print(l)

     

    with open vs. open

    구글링을 하다보면 with open을 사용하거나 open을 사용한 레퍼런스를 종종 볼 수 있다.

    사실상 다른 것은 없다. 같은 open 함수를 사용하는 것이지만, 큰 차이점 하나는 open 함수를 사용하면 반드시 파일을 닫아주어야 하지만, with open을 사용한다면 자동으로 작업이 끝난 후 파일을 닫아주기 때문에 직접 닫을 필요는 없다는 것이다.

     

    위에서 사용했던 with open을 다음과 같이 open 함수만으로도 교체가 가능하다.

    import csv
    
    f = open('invite.csv', 'r')
    for l in f:
        print(l)
    f.close()

     

    Total row count하기

    잘 읽히는 것 같지만, 혹시 몰라 총 수를 카운트 해보기로 했다.

    import csv
    
    count = 0
    
    with open('invite.csv', 'r') as f:
        for l in f:
            count += 1
    
    print(count)
    
    # 실행
    >>> python3 csv.py
    491

    491줄이 잘 읽히고 있음을 확인할 수 있다!

     

     

    Reference

     

    728x90

    'Back-end > Python' 카테고리의 다른 글

    파이썬 이터레이터  (0) 2021.07.09
    파이썬 변수의 범위  (1) 2021.05.22

    댓글