python csv 파일 읽고 쓰기

김준수·2023년 7월 5일

CSV

CSV(영어: comma-separated values) 데이터를 저장할 때 각 데이터를 필드를 쉼표(,)로 구분한 텍스트 데이터 및 텍스트 파일이다. 확장자는 .csv이며 MIME 형식은 text/csv이다.

오래전부터 스프레드시트나 데이터베이스 소프트웨어에서 많이 쓰였으며 가장 오래된 데이터 저장 포멧이기도 하다.

python으로 다루기

기본적으로 데이터와 필드를 쉼표(,)로 다루기 때문에 그냥 파일읽고 split(",")으로 해도 충분히 사용가능 하지만 간혹 필드안에 쉼표(,)가 있을 경우 ex)"Hello, World" 필드가 잘못 나누어 질 수 있기 때문에 파이썬에 내장된 import csv를 사용하는것이 좋다.

python으로 읽기

예시

import csv
with open('eggs.csv', newline='') as csvfile:
    spamreader = csv.reader(csvfile)
    for row in spamreader:
        print(row)

각 필드를 읽을땐 list 인덱스로 접근하면 된다.

import csv
with open('eggs.csv', newline='') as csvfile:
    spamreader = csv.reader(csvfile)
    for row in spamreader:
    	print(len(row)) #필드의 개수
        print(row[0]) # 첫번째 필드

만약 csv 파일에서 필드 구분자가 다르게 지정되어 있다며 바꿀 수 있다.

import csv
with open('eggs.csv', newline='') as csvfile:
    spamreader = csv.reader(csvfile, delimiter=' ')
    for row in spamreader:
    	print(len(row)) #필드의 개수
        print(row[0]) # 첫번째 필드

파일의 encoding도 설정 할 수있다.

import csv
 
with open('data.csv', 'r', encoding='utf-8') as csvfile:
  spamreader = csv.reader(csvfile)
  for row in spamreader:
      print(row)

python으로 쓰기

예시

import csv
with open('some.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerows(someiterable)
    wr.writerow([1, "김정수", False])

0개의 댓글