본문 바로가기
python

[python] csv

by 천뿌니 2022. 4. 3.
728x90

1. csv

• Comma Separated Value(다른 구분 문자도 사용 가능)

• 각 열이 특정한 의미를 가짐

• 데이터에 ,(콤마)가 포함되어 있는 경우 -> 큰따옴표 (" ") 를 이용하여 데이터를 감싼다

 

• 장점 : 같은 데이터를 저장하는 데 용량을 적게 소모함

• 단점 : 데이터 오염에 취약함

 

csv 데이터 읽고 처리하기

# csv 모듈을 임포트합니다. 
import csv

def print_book_info(filename):
    with open(filename) as file:
        # ',' 기호로 분리된 CSV 파일을 처리하세요..
        reader = csv.reader(file, delimiter=',')
        
        # 처리된 파일의 각 줄을 불러옵니다.
        for row in reader:
            
            # 함수를 완성하세요.
            title = row[0]
            author = row[1]
            pages = row[3]
            print("{} ({}): {}p".format(title, author, pages))

csv 데이터 변환하기(csv -> 딕셔너리 저장 -> json 저장)

# CSV, JSON 모듈을 임포트합니다.
import csv
import json
from elice_utils import EliceUtils

elice_utils = EliceUtils()

def books_to_json(src_file, dst_file):
    # 아래 함수를 완성하세요.
    books = []
    with open(src_file) as src:
        reader = csv.reader(src, delimiter=',')
        
        # 각 줄 별로 대응되는 book 딕셔너리를 만듭니다.
        for word in reader:
            # 책 정보를 저장하는 딕셔너리를 생성합니다.
            book = {
                "title":word[0],
                "author":word[1],
                "genre":word[2],
                "pages":int(word[3]),
                "publisher":word[4],
            }
            books.append(book)
    
    with open(dst_file, 'w') as dst:
        # JSON 형식으로 dst_file에 저장합니다.
        dst.write(json.dumps(books))
        pass


# 아래 주석을 해제하고 결과를 확인해보세요.  
src_file = 'books.csv'
dst_file = 'books.json'
books_to_json(src_file, dst_file)
elice_utils.send_file(dst_file)

 * 파이썬만으로 csv파일 사용법에 대해 알아보았다. 하지만 pandas를 사용하면 더 유용하게 사용할 수 있다.

댓글