Maison > développement back-end > Golang > Comment lire et écrire efficacement des fichiers CSV dans Go ?

Comment lire et écrire efficacement des fichiers CSV dans Go ?

Susan Sarandon
Libérer: 2024-11-03 08:03:03
original
540 Les gens l'ont consulté

How to Efficiently Read and Write CSV Files in Go?

Lecture et écriture efficaces de fichiers CSV dans Go

Une tâche courante dans le traitement des données consiste à lire et à écrire des fichiers CSV de manière performante. L'extrait de code fourni dans la question démontre une méthode lente pour lire un fichier CSV, traiter les données et les réécrire. Une inefficacité potentielle réside dans l'approche consistant à charger l'intégralité du fichier en mémoire avant le traitement.

Pour optimiser le code, il est recommandé de lire le fichier de manière incrémentielle en appelant .Read() et de traiter une ligne à la fois. Cela empêche le chargement de l'intégralité du fichier en mémoire, ce qui peut améliorer considérablement les performances, en particulier pour les fichiers volumineux.

Voici une approche alternative :

<code class="go">func processCSV(rc io.Reader) (ch chan []string) {
    ch = make(chan []string, 10)
    go func() {
        r := csv.NewReader(rc)
        if _, err := r.Read(); err != nil { //read header
            log.Fatal(err)
        }
        defer close(ch)
        for {
            rec, err := r.Read()
            if err != nil {
                if err == io.EOF {
                    break
                }
                log.Fatal(err)

            }
            ch <- rec
        }
    }()
    return
}</code>
Copier après la connexion

Cette approche utilise un canal pour transmettre enregistrements de la goroutine du lecteur à la goroutine principale pour le traitement, permettant une approche de traitement incrémental plus efficace.

En adoptant cette technique, qui implique la lecture et le traitement des données progressivement, vous pouvez améliorer considérablement les performances de lecture et d'écriture de votre code CSV.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal