CSV 클래스
CSV 클래스
CSV(comma-separated values, 쉼표로 구분된 값)는 표를 텍스트로 표현하는 한 방식이에요. 행 구분자(row separator)가 표의 행을 나누고(보통 줄바꿈 \n), 열 구분자(column separator)가 행 안의 필드들을 나눈다고 보시면 돼요(보통 쉼표 ,).
예를 들어 아래 CSV 문자열은 행 구분자 \n과 열 구분자 ,를 쓰고, 세 개의 행과 두 개의 열을 가집니다.
"foo,0\nbar,1\nbaz,2\n"
이름이 CSV라서 그렇지, CSV 표현은 꼭 쉼표만 쓰는 건 아니에요. 구분자를 바꿔서 쓸 수도 있어요.
출처: Ruby 3.3 API
본문
Class CSV
CSV 클래스는 다음과 같은 일들을 해 줍니다.
String객체,File(파일 경로로), 또는IO객체에서 CSV 데이터를 파싱하기- CSV 데이터를
String객체로 생성하기
CSV를 사용하려면 먼저 불러와야 해요.
require 'csv'
여기 있는 모든 예제는 이 불러오기가 이미 되어 있다고 가정할게요.
Keeping It Simple
CSV 객체는 파싱과 생성을 세밀하게 제어해 주는 수십 개의 인스턴스 메서드를 갖고 있어요. 하지만 많은 경우엔 더 간단한 방법으로 충분합니다.
이 절에서는 CSV의 싱글턴 메서드(singleton methods)를 요약해요. 이 메서드들은 CSV 객체를 명시적으로 만들지 않고도 파싱과 생성을 할 수 있게 해 줍니다.
Simple Parsing
파싱 메서드는 보통 다음 중 하나를 반환합니다.
- 각 행을 배열로 담은 배열
CSV::Table객체- 행마다 블록을 호출하는 방식
Simple Generating
생성 메서드는 String 객체를 반환하거나, 블록으로 CSV 객체를 받아 그 안에서 행을 추가하는 방식으로 동작해요.
CSV로 표 만들기
CSV.new로 파서/생성기 객체를 만들면 여러 옵션(구분자, 헤더 처리, 인코딩 등)을 지정해 세밀한 제어를 할 수 있어요. CSV.table 등 편의 메서드는 파일을 읽어 표 형태로 바로 다루기 좋아요.
더 알아보기 (Learn more)
CSV#each,CSV#read,CSV#shift등 행 단위 처리 메서드CSV.generate,CSV.parse,CSV.read같은 클래스 레벨 편의 메서드