Pular para o conteúdo

Registros CSV com quebras de linha e aspas na descrição

Leia registros com descrições em várias linhas, preserve delimitadores internos e bloqueie aspas sem fechamento.

Uma descrição pode ocupar duas linhas físicas e continuar pertencendo a um único registro CSV. Contar linhas ou separar todo ponto e vírgula como se fosse uma coluna pode eliminar operações, mesmo que os números monetários não precisem de conversão.

Arquivo fictício com quatro operações

O arquivo usa UTF8 com marcador inicial, ponto e vírgula como delimitador e aspas duplas para proteger campos. Os valores são inteiros em reais. A descrição de A contém uma quebra de linha real; B contém ponto e vírgula; C contém aspas dentro do texto; D não contém esses caracteres especiais.

Registro Conteúdo particular Linhas físicas Valor
A Descrição em duas linhas 2 e 3 100
B Item; detalhe 4 200
C Texto com palavra entre aspas 5 300
D Descrição simples 6 400

A linha física 1 contém o cabeçalho. Portanto, existem seis linhas físicas, quatro registros de dados e total de R$ 1.000. A quebra interna de A não representa uma quinta operação. As aspas duplicadas na codificação de C devem resultar em uma única aspa em cada posição do texto interpretado.

Contraste reproduzível

O procedimento incorreto divide o arquivo por quebras de linha e depois cada trecho por ponto e vírgula. Se aceitar somente trechos com três campos, descarta as duas partes de A e a linha de B. Restam C e D, subtotal de R$ 700 e três linhas rejeitadas. Esse subtotal não representa o total da origem.

O leitor adequado respeita a estrutura dos campos e registra onde cada operação começa e termina no arquivo original. O pacote também contém um arquivo deliberadamente inválido, com aspas sem fechamento. A leitura estrita deve interromper esse teste com erro, em vez de tentar adivinhar onde termina a descrição.

O programa usa a biblioteca padrão e não instala dependências nem acessa a rede. A documentação do módulo CSV do Python explica tratamento de quebras, aspas, leitura estrita e a diferença entre linhas lidas e registros. Na assistência técnica contábil, o arquivo original e o vínculo entre registro e linhas permitem revisar a transformação. O teste estrutural não autentica o documento recebido.

Falar pelo WhatsApp