도구로 바로 가기
ViewCSV
파일을 업로드하지 않습니다

CSV 나누기

orders.csv· 예시 데이터15행 · 8열
각 파일은 원본 레코드를 바이트 그대로 복사합니다. 따옴표, 줄 바꿈 문자, BOM이 그대로이며, 따옴표 안의 줄 바꿈 때문에 레코드가 잘리지 않습니다.
나누는 방법을 고른 다음, 목록을 보거나 ZIP으로 다운로드하세요.

목록에서 각 파일을 따로 다운로드할 수도 있습니다.

15행

CSV를 열고 나누는 방식을 고르세요. 파일당 정해진 행 수, 최대 파일 크기, 파일 개수, 또는 한 열의 값마다 파일 하나로 나눌 수 있습니다. 나뉜 파일은 원본 레코드를 바이트 단위로 그대로 복사하고 맨 위에 머리글을 반복하므로, 따옴표 처리, 줄 바꿈 문자, 인코딩, BOM이 원래대로 유지됩니다. 나뉠 파일 목록을 미리 본 뒤 하나씩 받거나 ZIP으로 한꺼번에 받으세요. 25 MB가 넘는 파일도 나눌 수 있으며, 업로드되는 것은 없습니다.

CSV 파일을 나누는 방법

  1. .csv, .tsv, .txt 파일을 열거나 도구 위에 끌어다 놓거나 행을 붙여넣으세요. 첫 행은 머리글로 봅니다.
  2. 나누는 기준을 고르고 행 수, 최대 크기(바이트), 파일 개수, 또는 기준 열을 입력하세요.
  3. 나뉠 파일을 미리 보며 파일마다 이름, 행 수, 크기를 확인한 다음, 파일 하나만 받거나 전부를 ZIP 하나로 받으세요.

나뉜 파일의 이름은 원본 파일 이름을 따릅니다. orders.csv는 orders-part-001.csv, orders-part-002.csv…가 됩니다. .tsv 파일은 .tsv 확장자를 유지하며, ZIP 파일 이름은 orders-parts.zip입니다.

나누는 방식

파일당 행 수모든 파일에 이 수만큼 데이터 행을 넣고, 마지막 파일에는 남은 행을 넣습니다. 머리글은 세지 않습니다.
파일당 최대 크기다음 레코드를 넣으면 크기를 넘게 될 때까지 온전한 레코드로 채웁니다. 크기는 머리글과 BOM을 포함한 바이트 수로 셉니다. 레코드를 반으로 자르는 일은 없으므로, 레코드 하나가 한도보다 크면 그 레코드를 알려 주는 오류와 함께 멈춥니다.
파일 개수먼저 레코드 수를 센 다음, 모든 파일에 같은 수의 행을 올림해서 넣습니다(최대 1,000개 파일). 올림 때문에 요청한 것보다 파일이 적게 나올 수 있습니다. 5행을 4개 파일로 나누면 2, 2, 1행짜리 파일이 됩니다.
열 값마다 파일 하나고른 열의 값이 정확히 같은 행끼리 묶고, 값마다 처음 나온 순서대로 orders-West.csv, orders-East.csv… 파일을 만듭니다. 각 파일 안에서 행은 원래 순서를 유지합니다. 서로 다른 값은 최대 1,000개입니다.
모든 파일에 머리글 반복기본으로 켜져 있습니다. 나중에 파일들을 다시 이어 붙일 예정이라면, 꺼서 첫 파일에만 머리글을 남기세요.

까다로운 데이터의 처리 방식

  • 구분 기호나 줄 바꿈이 들어 있는 따옴표 값은 RFC 4180에 따라 읽으므로 자기 레코드 안에 남습니다. 여러 줄짜리 주소가 두 파일로 갈라지는 일은 없습니다.
  • 레코드는 다시 해석하거나 다시 쓰지 않고 원래 바이트 그대로 복사하므로 따옴표, 줄 바꿈 문자, 앞자리 0이 정확히 유지됩니다. 파일 맨 앞의 UTF-8 BOM은 나뉜 파일마다 맨 앞에 다시 쓰므로, Excel은 각 파일을 여전히 UTF-8로 인식합니다.
  • 레코드 사이의 빈 줄은 건너뜁니다. 마지막 레코드에 줄 바꿈이 없으면 원본 파일의 줄 바꿈 문자를 붙입니다.
  • 열 값은 정확히 비교하므로 West와 west는 다른 파일이 됩니다. 많은 파일 시스템이 대소문자를 구분하지 않기 때문에, 두 번째 파일은 첫 번째 파일을 덮어쓰지 않도록 orders-west-2.csv라는 이름이 됩니다.
  • 파일 이름에서 / \ : * ? " < > | 같은 문자는 _로 바뀌고, 이름은 60자에서 잘리며, 빈 값은 orders-empty.csv로 씁니다. 각 파일이 어떤 값을 담는지는 미리 보기의 값 열에서 정확히 확인하세요.

나눌 수 있는 인코딩

나누기는 바이트를 직접 다루므로 UTF-8과 Windows-1252 같은 1바이트 인코딩에서 안전합니다. UTF-16 파일은 이 방식으로 나눌 수 없으니 먼저 CSV 형식 변경 등으로 UTF-8로 저장하세요. Shift_JIS, GB18030, GBK, Big5 파일은 구분 기호가 쉼표, 세미콜론, 탭이면 나눌 수 있지만 세로 막대(|)면 안 됩니다. 이런 인코딩에서는 문자 안에 세로 막대와 같은 바이트가 들어 있을 수 있기 때문입니다. 나눌 수 없는 파일이면 시작하기 전에 알려 줍니다.

문제 해결

  • 레코드 하나가 고른 파일 크기보다 큽니다. 최대 크기를 늘리세요. 머리글과 가장 큰 레코드 하나가 함께 들어갈 수 있어야 합니다.
  • 이대로 나누면 파일이 1,000개를 넘습니다. 파일당 행 수나 크기를 늘리거나, 파일 개수를 줄이세요.
  • 이 열에는 서로 다른 값이 1,000개를 넘습니다. 고객 대신 지역처럼 더 넓은 범주의 열로 나누거나, 먼저 파일을 필터링하세요.
  • 따옴표로 시작한 값이 닫히지 않습니다. 파일 어딘가에서 열린 따옴표가 닫히지 않아 나머지 파일 전체가 레코드 하나가 됩니다. CSV 검사로 위치를 찾으세요.

대용량 파일과 개인정보 보호

나누기는 25 MB 한도에 묶이지 않습니다. 더 큰 파일은 처음 200행만 미리 보여 주고, 나눌 때는 파일 전체를 8 MB 조각 단위로 읽으므로 메모리 사용량이 적습니다. 나뉜 파일은 다운로드하기 전까지 브라우저의 파일 데이터로 보관되므로, 실제 한도는 브라우저가 쓸 수 있는 여유 저장 공간입니다.

나누기는 이 탭의 백그라운드 워커에서 실행되며 취소로 멈출 수 있습니다. 파일은 서버로 보내지 않습니다. 나뉜 파일을 다시 합치려면 CSV 파일 합치기를, 자르는 대신 파일 크기를 줄이려면 CSV 압축을 사용하세요.

예시

CRLF 줄 바꿈(여기서는 일반 줄 바꿈으로 표시)과 여러 줄 메모가 있는 작은 주문 내보내기 파일을, 머리글을 반복하며 2행씩 나눈 결과입니다. 따옴표 안의 줄 바꿈은 주문 A2 안에 남고, 입력에서 줄 바꿈이 없던 마지막 레코드에는 파일의 CRLF가 붙습니다.

CSV
order_id,region,note
A1,West,ok
A2,East,"two
lines"
A3,West,"a, b"
A4,,late
A5,east,ok
파일 3개
orders-part-001.csv (2 rows)
order_id,region,note
A1,West,ok
A2,East,"two
lines"

orders-part-002.csv (2 rows)
order_id,region,note
A3,West,"a, b"
A4,,late

orders-part-003.csv (1 row)
order_id,region,note
A5,east,ok

자주 묻는 질문

나뉜 파일이 모두 Excel에서 제대로 열리나요?

원본이 제대로 열렸다면 그렇습니다. 나뉜 파일마다 머리글, 구분 기호, 인코딩이 같고, 원본에 UTF-8 BOM이 있었다면 그것도 유지합니다.

머리글 행이 없는 파일을 열 기준으로 나눌 수 있나요?

안 됩니다. 첫 행은 항상 머리글로 읽고, 기준 열은 머리글 이름으로 고릅니다. 먼저 CSV 편집기 등에서 머리글 행을 추가하세요.

요청한 것보다 파일이 적게 나온 이유는 무엇인가요?

파일 개수 방식은 모든 파일에 같은 행 수를 올림해서 넣으므로, 마지막 파일에 이르기 전에 행이 바닥날 수 있습니다. 10행을 4개 파일로 나누면 3, 3, 3, 1행이 되고, 6개 파일로 나누면 2행짜리 파일 5개가 됩니다.

표준 및 참고 자료