Go의 인코딩/csv에서 CSV 큰따옴표 탈출
encoding/csv 패키지를 사용하여 Go에서 CSV 파일로 작업할 때 다음 사항이 중요합니다. 큰따옴표 문자("")가 처리되는 방법을 이해합니다. 큰따옴표는 CSV 형식을 깨뜨릴 수 있는 쉼표와 같은 특수 문자가 포함된 문자열을 묶는 데 사용됩니다.
Go에서 CSV 파일에 쓸 때 문자열 내의 큰따옴표 문자를 이스케이프하는 것이 중요합니다. 인코딩/csv 패키지는 이 작업을 자동으로 수행하여 문자열의 큰따옴표 주위에 큰따옴표를 추가합니다. 이는 구문 분석의 정확성을 위해 큰따옴표를 이스케이프 처리해야 하는 CSV 표준의 일부입니다.
예:
<code class="go">import ( "encoding/csv" "fmt" "os" ) func main() { f, err := os.Create("./test.csv") if err != nil { log.Fatal("Error: %s", err) } defer f.Close() w := csv.NewWriter(f) s := "Cr@zy text with , and \ and \" etc" record := []string{ "Unquoted string", s, } fmt.Println(record) w.Write(record) // Quote the string to escape double quotes record = []string{ "Quoted string", fmt.Sprintf("%q", s), } fmt.Println(record) w.Write(record) w.Flush() }</code>
스크립트가 실행되면 출력은 큰따옴표로 묶인 문자열을 표시합니다:
[Unquoted string Cr@zy text with , and \ and " etc] [Quoted string "Cr@zy text with , and \ and \" etc"]
그러나 CSV 파일에서 읽을 때 인코딩/csv 패키지는 이스케이프된 큰따옴표를 자동으로 이스케이프 해제합니다. 이는 추가 큰따옴표 없이 문자열이 올바르게 구문 분석된다는 것을 의미합니다.
읽기 함수 예:
<code class="go">func readCSV() { file, err := os.Open("./test.csv") defer file.Close() cr := csv.NewReader(file) records, err := cr.ReadAll() if err != nil { log.Fatal("Error: %s", err) } for _, record := range records { fmt.Println(record) } }</code>
읽기 함수가 호출되면 다음과 같이 됩니다. 출력을 참조하세요.
[Unquoted string Cr@zy text with , and \ and " etc] [Quoted string Cr@zy text with , and \ and " etc]
이는 쓰기 및 읽기 작업 중에 큰따옴표를 처리하여 데이터가 올바르게 저장되고 검색되는지 확인하는 방법을 보여줍니다.
위 내용은 Go\의 `encoding/csv` 패키지는 CSV 파일을 쓰고 읽을 때 큰따옴표 이스케이프를 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!