Ir para conteúdo
Fórum Script Brasil
  • 0

Manipulando arquivos


hugobaur

Pergunta

Pessoal,

 

To com uma dificuldade aqui de manipular arquivos.

 

Objetivo: Eu estou desenvolvendo um script que precisa criar pastas e copiar arquivos de uma origem, o script lê do usuário o numero de meses para criação. O script replica os arquivos igual o numero de meses a serem criados, se for 2017 preciso alterar uma string em um arquivo de .txt dentro do diretório.

 

String original dentro do arquivo: ANO INICIO DO ESTUDO 2016

String que deve ser alterada: ANO INICIO DO ESTUDO 2017

 

PS: O arquivo a ser alterado não é o de origem e sem a cópia

 

É possivel alterar uma linha de um arquivo txt?

 

O que eu preciso:

 

  1. Programa leia arquivo de origem e jogue para um array
  2. identificar uma parte de uma string dentro do array
  3. modificar a string caso seja encontrada a parte da string
  4. deletar o arquivo de origem e escrever outro com o mesmo nome, ou simplesmente alterar uma string (uma palavra em uma linha) dentro do arquivo de origem.

FILENAME_NEWAVE = Path do arquivo origem

STRING_DGER = String a ser procurada

FILE_DATE = Ano

 

Isso não está funcionando, está escrevendo no arquivo de origem.

def find_word_in_file_dger(FILENAME_NEWAVE, STRING_DGER, FILE_DATE):
    f = open(FILENAME_NEWAVE, "r+")
    file_array = f.readlines()
    for i in file_array:
        if i.find(STRING_DGER.encode('utf-8')):
            f.write(i)
        else:
            print ("TO LENDO O ARRAY")
            if FILE_DATE == "2016":
                continue
            else:
                i.replace(STRING_DGER, "ANO INICIO DO ESTUDO " + FILE_DATE)
                f.write(i)
                print("TO ESCREVENDO A LINHA CORRETAMENTE MLK!! ")
            return i
    f.close()
    return False

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Hugo, seria legal você mostrar o conteúdo do arquivo de origem também, dessa forma poderíamos entender melhor o contexto.

De qualquer forma, fiz um snippet que vou deixar colado aqui que me parece fazer isso que você precisa.

import os


input_path = '/tmp/file1'
output_path = '/tmp/file2'

with open(output_path, 'w') as output_file:
    with open(input_path) as input_file:
        lines = input_file.readlines()
        for line in lines:
            new_line = line.replace('ANO INICIO DO ESTUDO 2016', 'ANO INICIO DO ESTUDO 2017')
            output_file.write(new_line)
        os.remove(input_path)
        os.rename(output_path, input_path)

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...