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(())
}