[file] CSV파일

김기용·2020년 11월 8일
0
post-thumbnail

⚡️ CSV 파일이란

CSV라 쓰고 SCV라 읽는다....
CSV(comma-seperated variables) 필드를 (,) 쉼표 단위로 구분한 텍스트데이터 파일이다!

filename.csv
이름나이직업
Amuse18developer
Ellie18developer

이러한 데이터를 CSV 로 나타낸다면 이렇게 나타낼 수 있다.

이름, 나이, 직업
Amuse, 18, developer
Ellie, 18, developer


🕹 왜 이렇게 쓰나 ? 완 전 구 려 보 여

호환되지 않는 포멧을 사용하는 프로그램 끼리 자료를 전달할때 사용된다.

장점

사람과 기계 입장에서 이해하기 쉽고 직관적인 데이터 구조이다. 간단한 소프트웨어로 수정하기 쉬우며, 사람이 직접 수정도 가능하다. 그리고 다른 형식에 비해 간결해서 용량이 작다

단점

데이터 오염에 매우매우 취약한 포멧이다. 데이터에 쉼표가 들어갈 경우.. 지옥이 펼쳐진다. (예를 들어 본문 필드에 (,)가 들어갈 경우) 해결책은 쉼표를 문자열로 감싸거나 TSV(Tab-seperated value) 쉼표대신 탭문자(\t)를 사용해서 구분한다.


🕹 널리 쓰이는 이유? 데이터 크기가 매우 작다!!!

장점과 단점을 나열해 놓고봐도 치명적인 단점때문에 많이 쓰일것 같지 않지만, IT산업계에서 널리 쓰이는 이유는 ⚡️작은 데이터 크기 때문이다. json과 비교해도 2, 3배 용량이 차이나며 parsing 방법도 매우 간단해서 코드길이도 매우 짧다. 로드하는 데이터 크기가 기가바이트 단위를 바라본다면 오버헤드도 무시할 수 없는 문제가 되는데 이런곳에서 CSV의 강점이 잘 나타난다. 또한 압축도 잘되고 스트림 압충이 가능해서 데이터 일부만 수신된 상태에서도 데이터 적재 작업이 가능하니 꼭 사용법을 익혀두도록하자!


사용법

import os

import django
import csv
import sys

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "housetomorrow.settings")

django.setup()

from product.models import Menu

with open('Menu-Menu.csv') as in_file:
    data_reader = csv.reader(in_file)
    next(data_reader, None)
    for row in data_reader:
        Menu.objects.create(name=row[0])
profile
매일 새로운 배움을 통해 꾸준히 성장하는 것을 목표를 두고 있습니다. 논리적인 사고로 문제해결 하는것에 희열을 느끼고 언젠가 제가 만든 결과물들이 사람들에게 편이를 제공하며 사용되는 날을 간절히 소망하고 있습니다. 🙏

0개의 댓글