Tôi đang gặp một số sự cố khi đọc tệp CSV đã lưu trữ.Làm cách nào để đọc tệp CSV được nén?
Vì vậy, tôi muốn sử dụng gói csv
và gói gzip
cho việc này, nhưng tôi không biết cách kết hợp chúng.
gzip.Reader(p []bytes)
và csv.Reader()
có chữ ký khác nhau.
Đây là chức năng đọc của tôi:
func reader(filename string, c chan string) {
fi, err := os.Open(filename)
var r *bufio.Reader
if err != nil {
fmt.Println("%q",err)
os.Exit(1)
}
fz, err := g.NewReader(fi)
if err != nil {
r = bufio.NewReader(fi)
}else {
r = bufio.NewReader(fz)
}
for {
line, err := r.ReadString('\n')
if err != nil {
fmt.Println("done reading file")
c <- "done"
break
}else{
c <- fmt.Sprintf("%q",strings.Fields(line))
}
}
}
Bạn có bất cứ lời đề nghị?
Đầu tiên: Bộ đệm trước khi giải nén. Thứ hai: Có gì sai khi cắm 'fz' vào' csv.NewReader'? – Volker