Ir para conteúdo
  • 0

Inserir data no final do I250


Paulo Cesar

Pergunta

  • Alunos

Pessoal, bom dia tudo bem?

Conseguem me ajudar com um arquivo em Python?

Seria igual esse codigo abaixo que eu tenho hoje mais eu preciso ajustar ele para esse outro arquivo conforme anexo.

def process_and_save(filename):
    output_lines = []

    with open(filename, 'r') as file:
        for line in file:
            fields = line.strip().split('|')
            if fields[1] in ['D101', 'D105']:
                fields[9] = '113.03'
            output_lines.append('|'.join(fields))

    output_filename = filename.replace('.', '_result.')

    with open(output_filename, 'w') as output_file:
        output_file.write('\n'.join(output_lines))


# Example usage:
process_and_save(r"abertura_efd_pc-6980-01022023.txt")

Esse é uma parte do arquivo.

|I200|202220020017036|16082022|44312,35|N||
|I250|112.01.01||20070|D|200|NFE B01|BR02777 2022 772000008938 CATAMAQ PR|COLOCAR AQUI A DATA QUE ESTÁ NO I200|
|I250|112.01.01||20070|D|200|NFE B01|BR02777 2022 772000008938 CATAMAQ PR|COLOCAR AQUI A DATA QUE ESTÁ NO I200|
|I250|213.02.02||2809,8|C|200|NFE B01|BR02777 2022 772000008938 CATAMAQ PR|COLOCAR AQUI A DATA QUE ESTÁ NO I200|
|I250|213.01.05||1119,9|C|200|NFE B01|BR02777 2022 772000008938 CATAMAQ PR|COLOCAR AQUI A DATA QUE ESTÁ NO I200|
|I250|301.01.03||40140|C|200|NFE B01|BR02777 2022 772000008938 CATAMAQ PR|COLOCAR AQUI A DATA QUE ESTÁ NO I200|
|I250|213.01.04||242,65|C|200|NFE B01|BR02777 2022 772000008938 CATAMAQ PR|COLOCAR AQUI A DATA QUE ESTÁ NO I200|
|I250|302.01.01||2809,8|D|200|NFE B01|BR02777 2022 772000008938 CATAMAQ PR|COLOCAR AQUI A DATA QUE ESTÁ NO I200|
|I250|302.01.02||242,65|D|200|NFE B01|BR02777 2022 772000008938 CATAMAQ PR|COLOCAR AQUI A DATA QUE ESTÁ NO I200|
|I250|302.01.03||1119,9|D|200|NFE B01|BR02777 2022 772000008938 CATAMAQ PR|COLOCAR AQUI A DATA QUE ESTÁ NO I200|

Qualquer dúvida me encontro a disposição.

Atenciosamente,

Paulo 

07607884000196-29202839138-20220101-20221231-G-25D6A5B48B27F3B9B0F00B7A64090FCA112152FC-1-SPED-ECD.txt

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
  • Alunos

Boa tarde, Paulo! Tudo bem?

Conseguiu resolver o BO?

Segue possível solução. Espero que ajude.

import os
 
def process_and_save(filename😞
    # Descobre a qtd de linhas
    _intQtdTotLin = 0
    with open(filename, 'r') as file:
        for line in file:
            _intQtdTotLin += 1
    #
    _intContReg  = 1
    output_lines = []
    with open(filename, 'r') as file:
        for line in file:
            fields = line.strip().split('|')
            if fields[1] == 'I200':
                _strData = fields[2][4:6] + fields[2][6:8] + fields[2][:4] + '|'
                #
            elif fields[1] == 'I250':
                if _intContReg < _intQtdTotLin:
                    output_lines.append(line[:-1] + _strData)
                else:
                    _strDataFim = '|' + _strData
                    output_lines.append(line[:-1] + _strDataFim)
            _intContReg += 1
           
    output_filename = filename.replace('.', '_result.')
 
    with open(output_filename, 'w') as output_file:
        output_file.write('\n'.join(output_lines))
 
_strPathData = r"D:\Users\rtoni\OneDrive\Git-Dados\Estudos\AnaliseDeDados\XPERIUN"
_strArquivo  = 'ArquivoTeste.txt'
_strPathFile = os.path.join(_strPathData, _strArquivo)
 
process_and_save(_strPathFile)
Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...