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

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

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

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

그래서 생각?



답변

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


답변

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

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


답변

아니요, 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에서만 작동하지만 가져 오기 후에 출력을 조금 더 깔끔하게 보이기에 충분할 수 있습니다.


답변

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

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

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

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


답변

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

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

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


답변

배치 파일에서 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!


답변

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

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

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

"#My comment, something else"
1,2

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

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

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