Ich habe Probleme beim Lesen von archivierten CSV-Dateien.Wie lese ich eine gezippte CSV-Datei?
Also ich möchte das csv
Paket und das gzip
Paket dafür verwenden, aber ich weiß nicht, wie man sie kombiniert.
Die gzip.Reader(p []bytes)
und die csv.Reader()
haben unterschiedliche Signaturen.
Dies ist meine Leser Funktion:
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))
}
}
}
Haben Sie Vorschläge?
Zuerst: Puffer vor dem Entpacken. Zweitens: Was ist falsch daran, die 'fz' in' csv.NewReader' zu stecken? – Volker