Skip to content

Instantly share code, notes, and snippets.

@jadsongmatos
Created April 12, 2024 17:46
Show Gist options
  • Select an option

  • Save jadsongmatos/8d02ea03d3b644a3e1aab262c4aabd71 to your computer and use it in GitHub Desktop.

Select an option

Save jadsongmatos/8d02ea03d3b644a3e1aab262c4aabd71 to your computer and use it in GitHub Desktop.
Este script Python converte o arquivo de texto "Itensmgv.txt" (Versão 4) para o formato CSV, seguindo a estrutura definida pelo MGV6. O arquivo "Itensmgv.txt" contém informações sobre itens cadastrados para comercialização, como preço, validade, descrição e códigos diversos. A conversão para CSV facilita a manipulação e análise dos dados em soft…
import csv
# Define o caminho do arquivo de entrada e de saída
input_file_path = 'TXITENS.BKP'
output_file_path = 'TXITENS.CSV'
# Define os campos e seus tamanhos de acordo com a especificação
fields = [
("Código do Departamento", 2), ("Tipo de Produto", 1), ("Código do Item", 8),
("Preço (R$/kg ou R$/Unidade)", 6), ("Dias de Validade", 3),
("Descrição do Item - Linha 1", 50)
]
def parse_line(line):
result = []
index = 0
for field, length in fields:
# Extrai o campo de acordo com o tamanho especificado
result.append(line[index:index + length].strip())
index += length
return result
# Abre os arquivos de entrada e saída
with open(input_file_path, 'r', encoding='iso-8859-1') as infile, \
open(output_file_path, 'w', newline='', encoding='utf-8') as outfile:
writer = csv.writer(outfile,delimiter=';')
# Escreve o cabeçalho com os nomes dos campos
writer.writerow([field for field, length in fields])
# Processa cada linha do arquivo de entrada
for line in infile:
if line.strip(): # Ignora linhas em branco
parsed_data = parse_line(line)
writer.writerow(parsed_data)
print("Conversão concluída. Os dados foram salvos em 'Itensmgv.csv'")
@jadsongmatos
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment