CSV 파일에 주석이있을 수 있습니까?


203

CSV 형식 파일이 자체 줄 또는 줄 끝에서 주석을 허용하는 공식적인 방법이 있습니까?

나는 이것에 대해 wikipediaRFC 4180을 확인하려고 했지만 둘 다 그것이 파일 형식의 일부가 아니라고 믿게하는 것을 언급하지 않으므로 나에게 운이 좋지 않으며 별도의 ReadMe.txt 파일을 사용하여 설명해야합니다. 파일.

마지막으로, 내 의견을 추가하는 것이 쉽다는 것을 알고 있지만 소비자가 가져 오기 프로세스를 사용자 정의 할 필요없이 Excel과 같은 것이 바로 가져올 수 있기를 바랍니다.

그래서 생각?


1
당신은 무엇에 대해 언급 하시겠습니까? 각 줄의 값 또는 파일 자체? XML 파일이 당신을위한 대안입니까?
Square Rig Master

3
제안은 파이썬을 위해 격추되었다 .
새로운 123456

2
데이터 @SquareRigMaster의 버전 문자열 일 수 있습니다. 내가 지금하려는 것처럼?
Rob Wells

@SquareRigMaster – 또는 저작권 정보.
Richard Smith

답변:


116

CSV "표준"(예 : 그대로)은 주석을 처리하는 방법을 나타내지 않습니다. 아니요, 컨벤션을 설정하고 준수하는 것은 응용 프로그램의 책임입니다.


23
현재 RFC 4180이 표준입니다.
vipw

34
rfc4180 은 RFC 4180은 표준이 아니라고 말합니다. "이 메모는 인터넷 커뮤니티를위한 정보를 제공합니다. 어떤 종류의 인터넷 표준도 지정하지 않았습니다.
Paul Weibert

14
우리는 사실상의 표준이라고 말할 수 있습니까?
Marco Sulla

1
모든 RFC는이 메모는 표준 AFAIK 어떤 인터넷을 제공하기위한 것은 아니다
USR - 지역 - ΕΨΗΕΛΩΝ

5
아뇨 ... 그건 사실이 아닙니다. 표준 트랙 문서와 비표준 트랙 (정보) 문서가 있습니다. IETF 발행 문서에 대한 설명, 프로세스 및 규칙을 포함한 전체 프로세스는 RFC2026에 의해 정의되며 일부 수정 사항이 따릅니다. 모든 RFC는 시작되는 트랙을 지정합니다.
Steve Hole

31

엔지니어링 데이터에서는 #주석을 표시하는 데 사용되는 첫 번째 열의 기호 를 보는 것이 일반적 입니다.

ostermiller CSV 구문 분석 라이브러리 를 사용하여 이러한 파일을 읽고 처리합니다. 이 라이브러리를 사용하면 주석 문자를 설정할 수 있습니다. 구문 분석 작업 후에는 주석이없는 실제 데이터 만 포함하는 배열이 생성됩니다.


30

아니요, CSV는 주석에 태그를 지정하는 방법을 지정하지 않습니다. Excel과 같은 프로그램은 텍스트를 포함하는 추가 셀로로드됩니다.

Excel과 같은 특정 응용 프로그램으로 CSV를 가져 와서 관리 할 수있는 가장 가까운 방법은 Excel에서 무시할 주석에 태그를 지정하는 특별한 방법을 정의하는 것입니다. Excel의 경우 주석을 수식에 포함시켜 주석을 "한정 도로"숨길 수 있습니다. 예를 들어 다음 csv 파일을 Excel로 가져 오십시오.

=N("This is a comment and will appear as a simple zero value in excel")
John, Doe, 24

여전히 숫자 0을 표시하는 스프레드 시트의 셀로 끝나지만 주석은 숨겨져 있습니다.

또는 셀의 보이는 부분에 표시되지 않도록 공백으로 채워서 텍스트를 숨길 수 있습니다.

                              This is a sort-of hidden comment!,
John, Doe, 24

Excel에서 다음 셀을 채우고 셀에 맞지 않는 텍스트 부분을 숨기려면 주석 텍스트를 쉼표로 따라야합니다.

불쾌한 해킹은 Excel에서만 작동하지만 가져 오기 후에 출력을 조금 더 깔끔하게 보이기에 충분할 수 있습니다.


6

CSV 파일에 주석을 추가하는 가장 좋은 방법은 "설명"필드를 추가하거나 데이터에 바로 기록하는 것입니다.

필자가 사용한 대부분의 CSV 구문 분석 응용 프로그램은 필드 매핑과 레코드 선택을 모두 구현합니다. 따라서 필드 속성에 주석을 달려면 필드 설명에 대한 레코드 만 추가하십시오. 레코드에 주석을 달려면 주석의 끝에 필드 (추가로 모든 레코드)를 추가하십시오.

이것이 CSV 파일에 주석을 달 수있는 유일한 두 가지 이유입니다. 그러나 내가 예상 할 수있는 유일한 문제는 단일 레코드가 일부 유효성 검사 규칙을 통과하지 않으면 파일을 전혀 거부하는 프로그램입니다. 이 경우 숫자 필드에 대한 문자열 유형 필드 설명 레코드를 작성하는 데 문제가 있습니다.

나는 결코 전문가가 아니므로 내 이론에 어떤 실수라도 지적 해 주시기 바랍니다.


2
Aaand, 방금 가져 오기 프로세스를 사용자 정의하고 싶지 않다는 것을 읽었습니다. 죄송합니다. 바라건대 누군가가 이것이 유용하다고 생각합니다.
Tyler Mumford

1
좋은 소식입니다. 주석이 필요한 이유에 대해 생각할 수있는 또 다른 이유는 파일에 대한 메타 데이터를 전체적으로 추가하는 것입니다. 이 정보로 하나의 셀에 대해서만 전체 열 또는 행을 추가하면 약간 어색합니다.
벤 허쉬

3

쉼표로 구분 된 파일은 실제로 줄이 쉼표로 구분 된 값으로 구성된 텍스트 파일입니다.

CSV 파일의 내용을 정의하는 표준이 없으므로 주석을 나타내는 정의 된 방법이 없습니다. CSV 파일을 가져올 프로그램에 따라 다릅니다.

물론 이것은 일반적으로 Excel입니다. Excel에서 주석을 어떻게 정의하는지 스스로에게 묻어 야합니까? 즉, Excel에서 CSV 파일의 한 줄 (또는 줄의 일부)을 무시하게 만드는 것은 무엇입니까? 나는 이것을 할 것이 무엇인지 모른다.


2
There is no standard which defines the contents of a CSV file 그릇된.
Qix-MONICA가 MISTREATED

5
@Qix-참조 문서의 섹션 2에서 : "CSV 형식에 대한 다양한 사양 및 구현이 있지만 (예 : [4], [5], [6] 및 [7]) 공식적인 사양은 없습니다. 존재 "
Alien Technology

3

배치 파일에서 FOR 명령으로 파일을 구문 분석하는 경우 세미콜론 (;)이 작동합니다.

REM test.bat contents

for /F "tokens=1-3 delims=," %%a in (test.csv) do @Echo %%a, %%b, %%c

;test.csv contents (this line is a comment)

;1,ignore this line,no it shouldn't

2,parse this line,yes it should!

;3,ignore this line,no it shouldn't

4,parse this line,yes it should!

산출:

2, parse this line, yes it should!

4, parse this line, yes it should!

1
!! 당신은 진짜 맨발 켄 밥입니까?
Geoffrey Hale

2

다음과 같은 것이 필요한 경우 :

  │ A                              │ B
──┼────────────────────────────────┼───
1 │ #My comment, something else    │
2 │ 1                              │ 2

CSV에는 다음 줄이 포함될 수 있습니다.

"#My comment, something else"
1,2

첫 줄의 따옴표에주의를 기울이십시오.

Excel 마법사를 사용하여 텍스트를 열로 변환 할 때는 '연속 구분 기호를 하나로 처리'를 선택하고 구분 기호로 '따옴표'를 사용하도록 설정하십시오.

따라서 Excel은 텍스트를 쉼표로 분할하여 'comment'줄을 단일 열 값으로 유지하고 따옴표를 제거합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.