Bibliotecas open source para leitura, validação e geração de arquivos de largura fixa (Fixed Width File) em Python, Java, JavaScript e PHP com descritores orientados a objetos e suíte de testes de conformidade.
Conheça as implementações oficiais mantidas sob a organização fixed-width-file.
Biblioteca de referência em Python para leitura e geração de arquivos posicionais com colunas tipadas e descritores OO.
Biblioteca em Java para leitura e gravação de arquivos posicionais e integração com JUnit 5 e suíte compliance.
Implementação em TypeScript/Node.js para manipulação de arquivos posicionais com tipagem estática.
Biblioteca em PHP 8.x para parsing de arquivos FWF, integração via Composer e testes via PHPUnit.
Garantia de que qualquer parser em qualquer linguagem retorne exatamente o mesmo resultado estruturado.
| ID do Caso | Categoria | Descrição do Teste |
|---|---|---|
simple |
basic | Arquivo ASCII simples com 1 descritor de detalhe e colunas texto e inteiro. |
utf8 |
encoding | Suporte a caracteres multibyte UTF-8 com acentuação em português. |
typed_columns |
types | Colunas tipadas: Char, RightChar, Integer, Decimal, Date, Time, DateTime e nulos. |
header_footer |
structure | Arquivo com linhas de Cabeçalho (Header), Detalhes (Detail) e Rodapé (Footer). |
padding_and_spaces |
edge_cases | Casos de borda: alinhamentos, espaços em branco e campos vazios. |
Todas as bibliotecas são 100% aderentes ao padrão presente na suíte de conformidade.
Suíte de conformidade agnóstica de linguagem em formato JSON/FWF para validar novos parsers.
API uniforme orientada a objetos para criar descritores e ler arquivos posicionais.
from pyfwf.columns import CharColumn, PositiveIntegerColumn, PositiveDecimalColumn
from pyfwf.descriptors import DetailRowDescriptor, FileDescriptor
from pyfwf.readers import Reader
# Define os campos do detalhe
detail = DetailRowDescriptor([
CharColumn(name="nome", size=20),
PositiveIntegerColumn(name="idade", size=3),
PositiveDecimalColumn(name="saldo", size=9, decimals=2)
])
# Cria o descritor de arquivo
fd = FileDescriptor(details=[detail])
# Lê o arquivo FWF
reader = Reader(conteudo_fwf, fd)
for row in reader:
print(row)
# Output: {'nome': 'KELSON MEDEIROS', 'idade': 45, 'saldo': 1250.50}
Digite ou cole um arquivo posicional para ver o parsing dinâmico dos campos em JSON.