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.
