Skip to content

Instantly share code, notes, and snippets.

@jadsongmatos
Created April 12, 2024 17:46
Show Gist options
  • Save jadsongmatos/8d02ea03d3b644a3e1aab262c4aabd71 to your computer and use it in GitHub Desktop.
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

Introdução

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 softwares como Excel e ferramentas de BI.

Funcionalidades

  • Leitura do arquivo "Itensmgv.txt" (Versão 4).
  • Extração e formatação dos campos de acordo com a especificação do MGV6.
  • Criação de um novo arquivo CSV com os dados extraídos e formatados.
  • Tratamento de campos específicos, como:
    • Conversão do preço para número inteiro.
    • Ignorando códigos de imagem e som reservados.
    • Definindo o comportamento da impressão da data de validade.

Exemplo de Uso

# Define o caminho do arquivo de entrada e de saída
input_file_path = 'TXITENS.BKP'
output_file_path = 'TXITENS.CSV'

# Execute o script
python converter_itensmgv.py

Observações

  • O script assume que o arquivo "Itensmgv.txt" está no mesmo diretório que o script Python.
  • O arquivo CSV gerado terá o nome "Itensmgv.csv".
  • O script utiliza a biblioteca csv do Python para criar o arquivo CSV.
  • O script ignora linhas em branco no arquivo de entrada.
  • O script trata os campos de acordo com a especificação do MGV6 (Versão 4).

Benefícios

  • Facilita a manipulação e análise dos dados do arquivo "Itensmgv.txt".
  • Permite a importação dos dados em softwares como Excel e ferramentas de BI.
  • Padroniza a formatação dos dados para facilitar a integração com outros sistemas.

Melhorias Futuras

  • Implementar a validação dos dados de entrada para garantir a integridade dos dados.
  • Permitir a configuração de parâmetros para personalizar a conversão, como campos a serem extraídos e formatação do arquivo CSV.
  • Desenvolver uma interface gráfica para facilitar o uso do script.

Conclusão

Este script é uma ferramenta útil para converter o arquivo "Itensmgv.txt" para CSV, facilitando a análise e o uso dos dados em diversos softwares. As funcionalidades do script podem ser expandidas no futuro para atender às necessidades específicas dos usuários.

@jadsongmatos
Copy link
Author

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