How to Read and Write CSV Files in Rust

Use the csv crate with Reader and Writer to parse and generate CSV files in Rust.

Use the csv crate to read and write CSV files efficiently in Rust. Add csv = "1.3" to your Cargo.toml, then use Reader for parsing and Writer for output.

use csv::{Reader, Writer};
use std::fs::File;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Read
    let file = File::open("data.csv")?;
    let mut rdr = Reader::from_reader(file);
    for result in rdr.records() {
        let record = result?;
        println!("{:?}", record);
    }

    // Write
    let file = File::create("output.csv")?;
    let mut wtr = Writer::from_writer(file);
    wtr.write_record(&["id", "name"])?;
    wtr.write_record(&["1", "Alice"])?;
    wtr.flush()?;
    Ok(())
}