csv — Travailler avec des fichiers CSV en Rust

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que csv ?

csv est une bibliothèque standard du langage Rust pour lire et écrire des fichiers au format CSV (Comma-Separated Values). Elle fournit une interface haute performance et flexible pour travailler avec des données tabulaires, prenant en charge des scénarios simples comme complexes (par exemple, l'échappement, différents séparateurs, les en-têtes).

Pourquoi en a-t-on besoin ?

Le CSV est l'un des formats les plus courants pour l'échange de données entre applications, bases de données et tableurs. La bibliothèque csv permet de :

  • Charger et traiter rapidement de grands ensembles de données (logs, exportations depuis Excel/Google Sheets, dumps de base de données).
  • Générer des rapports et des extractions dans un format lisible par l'homme.
  • Intégrer des applications Rust avec des systèmes fonctionnant via CSV (par exemple, systèmes financiers, pipelines de ML).

Comment l'installer ?

Ajoutez la dépendance dans votre fichier Cargo.toml :

[dependencies]csv = "1.3"

L'installation s'effectue automatiquement lors de la compilation avec cargo build.

Fonctionnalités principales

  • Lecture — itération sur les lignes avec analyse automatique des types.
  • Écriture — création de CSV à partir de structures de données avec sérialisation.
  • Configuration — séparateur personnalisé (tabulation, point-virgule), échappement, compression.
  • Gestion des en-têtes — accès aux colonnes par leur nom.
  • Sérialisation/Désérialisation — intégration avec serde pour la transformation automatique des structures.

Exemple de code en Rust

use csv::ReaderBuilder;use serde::Deserialize;use std::error::Error;

#[derive(Debug, Deserialize)]struct Record { name: String, age: u8, city: String,}

fn main() -> Result<(), Box<dyn Error>> { let data = "name,age,cityAlice,30,New YorkBob,25,London"; let mut reader = ReaderBuilder::new() .has_headers(true) .from_reader(data.as_bytes());

for result in reader.deserialize::<Record>() { let record: Record = result?; println!("{:?}", record); } Ok(())}

Quand l'utiliser ?

La bibliothèque csv est idéale pour :

  • Le traitement de logs, d'exportations depuis CRM/ERP.
  • La création de pipelines ETL (extraction, transformation, chargement).
  • La préparation de données pour l'apprentissage automatique.
  • L'import/export de configurations dans des utilitaires CLI simples.

Si vous avez besoin de hautes performances et de sécurité des types — csv est le meilleur choix pour Rust.

Recommendations