[go] CSV 파일의 줄 바꿈 처리
CSV (Comma-Separated Values) 파일은 텍스트 데이터를 저장하는데 널리 사용되는 형식입니다. 각 레코드는 쉼표로 구분되고, 각 필드는 텍스트로 구성됩니다.
CSV 파일을 읽거나 쓸 때, 줄 바꿈 문자의 처리에 주의해야 합니다. 특히 Windows, macOS, Linux와 같은 다양한 플랫폼에서 파일을 주고받을 때, 줄 바꿈 문자가 서로 다를 수 있습니다.
줄 바꿈 문자란?
줄 바꿈 문자는 텍스트 파일에서 한 라인의 끝을 표시하는데 사용됩니다. 보통 3가지 종류의 줄 바꿈 문자가 사용됩니다:
- CR (Carriage Return): ASCII 코드 13
- LF (Line Feed): ASCII 코드 10
- CRLF (Carriage Return + Line Feed): Windows에서 주로 사용되는 형식
Unix 계열 시스템은 LF 문자(\n)를, Windows는 CRLF 문자(\r\n)를 사용합니다.
Go 언어에서의 CSV 파일 처리
Go 언어에서 CSV 파일을 읽거나 쓰는 경우, 기본적으로 표준 라이브러리의 encoding/csv
패키지를 이용합니다.
package main
import (
"encoding/csv"
"os"
)
func main() {
file, err := os.Open("data.csv")
if err != nil {
// 오류 처리
}
defer file.Close()
reader := csv.NewReader(file)
records, err := reader.ReadAll()
if err != nil {
// 오류 처리
}
// records를 처리
}
위의 예제에서 csv.NewReader
는 파일의 줄 바꿈 문자를 자동으로 판별하여 처리합니다. 이를 통해 각 플랫폼의 기본 줄 바꿈 문자에 맞게 데이터를 처리할 수 있습니다.
줄 바꿈 문자 처리 방법
CSV 파일을 처리할 때, 다음과 같은 몇 가지 방법으로 줄 바꿈 문자를 처리할 수 있습니다:
- 표준 라이브러리를 이용하여 자동으로 처리
encoding/csv
패키지의SetUseCRLF
메서드를 사용하여 출력 형식을 지정- 직접 줄 바꿈 문자를 처리하여 CSV 파일을 읽고 쓰기
각 방법에는 장단점이 있으므로 상황에 맞게 적절한 방법을 선택해야 합니다.
CSV 파일 처리 시 줄 바꿈 문자가 주는 영향을 이해하고, 좀 더 안정적이고 효율적인 파일 처리를 위해 적절한 방법으로 줄 바꿈 문자를 처리하는 것이 중요합니다.