데이터 및 스프레드시트 · CSV 클리너
CSV 구분 기호 감지 작동 방식: 쉼표, 세미콜론, 탭 및 파이프
· 작동 원리
CSV 데이터 정리 파일 형식
CSV 파일은 어떤 문자가 필드를 구분하는지 알려주지 않으므로 소프트웨어가 추측해야 합니다. 이 게시물에서는 구분 기호 스니핑이 작동하는 방식, 까다로운 파일에서 실패하는 이유, 구분 기호를 명시적으로 만드는 방법에 대해 설명합니다.
하나의 긴 열로 열리는 파일 — 구분 기호가 CSV의 어디에도 저장되지 않는 이유
데이터 분석가가 .csv 내보내기를 열고 모든 줄에 하나의 긴 필드가 표시됩니다. 확장자는 어떤 구분 기호가 사용되었는지 독자에게 알려주지 않으며 파일에는 일반적으로 구분 기호 선언이 없습니다. 쉼표를 가정하는 애플리케이션은 이름, 도시, 메모와 같이 세미콜론으로 구분된 헤더를 단일 열로 읽습니다. 값을 변경하기 전에 실제로 필드를 나누는 문자가 무엇인지, 가져오기 도구가 추측을 무시할 수 있는 방법이 있는지 물어보세요.
지원되는 네 가지 후보: 쉼표, 세미콜론, 탭 및 파이프
ToolAcre는 쉼표, 세미콜론, 탭 및 파이프를 후보로 간주합니다. 쉼표가 이미 소수 구분 기호로 사용되고, 탭이 단순 내보내기에서 구두점 충돌을 방지하고, 파이프가 때때로 로그 또는 데이터베이스 덤프를 분리하는 경우 세미콜론이 일반적입니다. 공백은 도구의 자동 선택 항목에 포함되지 않습니다. 이름과 자유 텍스트 셀에는 공백이 포함되는 경우가 많습니다. 샘플 텍스트에 자주 등장한다는 이유만으로 후보를 추가하지 마세요. 구분 기호는 행을 일관된 필드로 나누어야 합니다.
스니핑 작동 방식 — 줄당 후보 문자 수를 계산하고 행 전체에서 일관된 필드 수를 제공하는 문자를 선호합니다.
구현에서는 선행 UTF-8 byte 순서 표시를 제거하고 각 후보가 있는 최대 10개 행의 샘플을 구문 분석합니다. 해당 행의 너비를 기록하고 최소한 두 개의 열을 생성하지 않는 후보를 거부합니다. 여러 행에 걸쳐 일관되게 더 많은 열을 생성하면 후보 점수가 더 높아집니다. 일관되지 않은 너비는 점수에서 두 번 벌점을 받습니다. 결정적으로 구문 분석에서는 인용된 필드를 관찰하므로 인용된 주소 내의 쉼표는 필드 경계로 계산되지 않습니다. 이는 순진한 문자 계산과 다르며 지저분한 주소 열이 감지를 무효화할 필요가 없는 이유입니다.
스니핑이 실패하는 경우 - 쉼표로 가득 찬 자유 텍스트 열, 단일 열 파일 및 실제 구분 기호를 숨기는 인용 필드
어떤 추측도 틀림이 없습니다. 매우 짧은 파일에는 증거가 거의 없으며, 실제로 1열로 구성된 CSV에는 두 개로 분할되는 후보가 없으며 잘못된 형식의 인용으로 인해 여러 후보 구문 분석이 불규칙하게 보일 수 있습니다. 구분 기호로 채워진 자유 텍스트 열은 인용이 깨졌을 때 실제 구분 기호와 경쟁할 수 있습니다. 행 전체에 혼합된 구분 기호는 하나의 깨끗한 CSV 방언이 아닙니다. 이 도구는 구문 분석 경고를 보고하고 수동 구분 기호 선택을 표시합니다. 업스트림 내보내기 규칙을 알고 있는 사용자는 경험적 방법이 사양인 것처럼 가장하는 대신 추론된 선택을 무시할 수 있습니다.
작업된 예 — 주소 내부에 쉼표가 있는 세미콜론으로 구분된 내보내기로, 순진한 계산이 잘못된 문자를 선택하는 이유를 보여줍니다.
헤더 name;city;note 및 행 Ada;Paris;"Meeting at 10, Near the station"을 사용하여 작은 샘플을 사용해 보세요. 원시 쉼표를 계산하면 특히 여러 행에 걸쳐 메모에 구두점이 포함되어 있기 때문에 쉼표를 잘못 선호할 수 있습니다. 세미콜론 파서는 두 행 모두에 세 개의 필드를 반환합니다. 쉼표 파서는 동일한 직사각형 구조를 제공하지 않습니다. 자르기, 중복 제거 또는 내보내기 전에 미리보기에 이름, 도시, 메모가 별도의 열로 표시되는지 확인하세요. 하나의 소스 행에 닫히지 않은 인용문이 있는 경우 해당 행을 자동으로 삭제하는 대신 검사하여 점수를 높이세요.
출력 구분 기호 선택 - 다음에 파일을 읽을 프로그램 및 로케일과 구분 기호를 일치시킵니다.
입력 구분 기호와 출력 구분 기호는 서로 다른 결정입니다. 유럽 세미콜론 파일을 가져올 수 있지만 쉼표가 필요한 프로그램의 경우 RFC 스타일 쉼표로 구분된 텍스트를 내보낼 수 있습니다. 올바른 작성자는 출력 구분 기호, 삽입된 따옴표 또는 줄 바꿈을 포함하는 필드를 인용합니다. 다운로드하기 전에 수신자에게 UTF-8 BOM이 필요한지 여부를 결정하십시오. 일부 스프레드시트 응용 프로그램은 인코딩을 인식하기 위해 하나를 사용하지만 많은 파서는 인코딩이 없는 파일을 원합니다. 브라우저 미리보기뿐만 아니라 다운로드한 헤더도 대상 프로그램에서 확인하세요.
여기서 다루지 않는 내용 - 행 사이에 구분 기호를 혼합하는 파일과 구분 기호를 전혀 사용하지 않는 고정 너비 내보내기
감지는 중간에 구분 기호를 변경하는 파일을 복구할 수 없으며 구분 기호가 없는 고정 너비 내보내기의 열을 유추할 수도 없습니다. 인용된 쉼표가 거리 주소의 일부인지 아니면 데이터 입력 실수인지 알 수 없습니다. 의미가 아니라 구문을 따릅니다. CSV 클리너는 고객의 데이터 삭제 방법을 추측하는 대신 불규칙한 행을 표시하고 해당 값을 보존합니다. 되돌릴 수 없는 청소 단계를 수행하기 전에 미리보기 및 경고를 사용하여 소스 시스템 문제를 진단하십시오.
희망하는 대신 구분 기호를 명시적으로 만듭니다. ToolAcre CSV Cleaner의 구분 기호 복구가 하나의 일관된 구분 기호가 있는 파일을 생성하는 방법
구분 기호 추측은 CSV 파일 내에 작성된 약속이 아니라 증거 기반으로 몇 행을 구문 분석하는 것입니다. CSV Cleaner는 이를 브라우저에서 로컬로 구현하여 다른 구분 기호를 선택하고 일관된 출력 방언을 작성할 수 있도록 합니다. 가져오기 마법사가 다음 주에 다르게 추측하는 경우 다음 독자가 이를 재발견할 필요가 없도록 파일 옆에 출력 규칙을 기록하십시오.