csv para Rust: guia completo com exemplos práticos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Biblioteca csv para Rust: guia completo

1. O que é e para que serve

A biblioteca csv para Rust é um parser de alto desempenho, seguro e flexível para trabalhar com arquivos CSV (Comma-Separated Values). Ela fornece ferramentas para ler, escrever e processar dados tabulares no formato CSV, um dos formatos mais comuns para troca de dados entre sistemas, bancos de dados e planilhas eletrônicas.

A principal vantagem desta biblioteca é a tipagem forte do Rust e o gerenciamento de memória sem coletor de lixo. Diferente de alternativas em Python ou JavaScript, a biblioteca csv permite processar arquivos de gigabytes com consumo mínimo de memória e performance previsível. Ela suporta delimitadores personalizáveis, escape de aspas, trabalho com cabeçalhos e conversão automática de tipos de dados.

A biblioteca é ideal para tarefas de ETL (Extract, Transform, Load), análise de dados, importação/exportação de informações de bancos de dados, processamento de logs e qualquer cenário que exija manipulação confiável e rápida de dados tabulares. Graças à integração com o ecossistema Rust, o csv combina facilmente com outras bibliotecas, como serde para desserializar dados em estruturas.

2. Instalação

Para instalar a biblioteca csv em um projeto Rust, use o gerenciador de pacotes cargo. Adicione a seguinte linha ao arquivo Cargo.toml do seu projeto:

[dependencies]
csv = "1.3"

Depois, execute o comando no terminal:

cargo build

Para trabalhar com serialização/desserialização de estruturas, recomenda-se instalar também o serde:

[dependencies]
csv = "1.3"
serde = { version = "1.0", features = ["derive"] }

3. Primeiros passos

Exemplo mínimo de leitura de um arquivo CSV e exibição do conteúdo no console:

use std::error::Error;
use csv::Reader;

fn main() -> Result<(), Box<dyn Error>> {
    // Cria um leitor CSV a partir do arquivo
    let mut reader = Reader::from_path("dados.csv")?;

    // Percorre todos os registros
    for result in reader.records() {
        let record = result?;
        // Exibe cada registro
        println!("{:?}", record);
    }

    Ok(())
}

Exemplo do arquivo dados.csv:

nome,idade,cidade
Ana,30,São Paulo
Carlos,25,Rio de Janeiro
Maria,35,Belo Horizonte

Este código abrirá o arquivo, lerá todas as linhas e as exibirá como vetores de strings. Observe o tratamento de erros com Result — é a abordagem padrão em Rust.

4. Métodos e funções principais

4.1. Reader::from_path

Assinatura: pub fn from_path<P: AsRef<Path>>(path: P) -> Result<Reader<File>>

Cria um novo leitor CSV a partir de um arquivo no caminho especificado. Detecta automaticamente a codificação e abre o arquivo para leitura.

use csv::Reader;

let mut reader = Reader::from_path("usuarios.csv").expect("Não foi possível abrir o arquivo");
for record in reader.records() {
    println!("{:?}", record.unwrap());
}

4.2. Reader::records

Assinatura: pub fn records(&mut self) -> Records<'_, R>

Retorna um iterador sobre todos os registros do arquivo CSV. Cada registro é um StringRecord, que pode ser convertido em um vetor de strings.


                
    
    

Recommendations