Substituir string no arquivo usando Python

Vaibhhav Khetarpal 10 outubro 2023
  1. Use a função replace() quando os arquivos de entrada e saída são diferentes
  2. Use a função replace() quando apenas um arquivo é usado para entrada e saída
Substituir string no arquivo usando Python

O manuseio de arquivos é um aspecto essencial de qualquer aplicativo da web. Python, semelhante a outras linguagens de programação, oferece suporte ao manuseio de arquivos. Ele permite que os programadores lidem com arquivos e essencialmente realizem algumas operações básicas como leitura, gravação e algumas outras opções de manipulação de arquivos para operar em arquivos.

A função open() pode ser usada para abrir um arquivo no programa Python. O arquivo pode ser aberto em modo de texto ou binário, que é decidido pelo usuário. A função open() possui vários modos, todos os quais fornecem diferentes opções de acessibilidade para o arquivo a ser aberto.

O termo String em Python pode ser descrito como um cluster de caracteres Unicode entre aspas simples ou duplas. Strings podem estar contidos em arquivos de texto que devem ser abertos no código Python.

Este tutorial discutirá diferentes métodos para substituir uma string em um arquivo em Python.

Use a função replace() quando os arquivos de entrada e saída são diferentes

O método replace() em Python é utilizado para pesquisar por uma string secundária e substituí-la por outra string secundária.

A função replace() tem três parâmetros, a saber, oldvalue, newvalue e count. Tanto oldvalue como newvalue são valores obrigatórios e fornecer a função com o parâmetro count é opcional.

O código a seguir usa a função replace() para substituir uma string em Python quando os arquivos de entrada e saída são diferentes.

# the input file
fin = open("f1.txt", "rt")
# the output file which stores result
fout = open("f2.txt", "wt")
# iteration for each line in the input file
for line in fin:
    # replacing the string and write to output file
    fout.write(line.replace("gode", "God"))
# closing the input and output files
fin.close()
fout.close()

Na saída do código acima, a string gode no arquivo será substituída pela palavra God.

No código acima, trabalhamos simultaneamente em dois arquivos diferentes, f1.txt e f2.txt. f1.txt é aberto no modo de leitura de texto rt e é referenciado como end. f2.txt é aberto no modo de escrita de texto wt e faz referência a fout. Em seguida, o loop for é iterado e, para cada ocorrência da string gode no arquivo, ele é substituído pela palavra God. Ambos os arquivos são então fechados após as operações necessárias com a ajuda da função close().

Use a função replace() quando apenas um arquivo é usado para entrada e saída

Neste método, o mesmo arquivo é usado como entrada e saída.

Usamos a instrução with aqui junto com a função replace(). O gerenciador de contexto with ​​tem uma função fundamental: tornar o programa mais curto e muito mais legível.

Quando usamos a instrução with com manipulação de arquivo, o arquivo que abrimos no código Python não precisa ser fechado manualmente; ele fecha automaticamente após o término do bloco with.

O código a seguir usa a função replace() para substituir uma string em Python quando o arquivo de entrada e saída é o mesmo.

with open("file1.txt", "rt") as file:
    x = file.read()

with open("file1.txt", "wt") as file:
    x = x.replace("gode", "God")
    fin.write(x)

O código a seguir usa file1 como arquivo de entrada e saída. Em primeiro lugar, o arquivo é aberto no modo de leitura de texto rt e o conteúdo do arquivo é lido e armazenado em uma variável. Em seguida, o arquivo é fechado e aberto novamente, mas no modo de gravação de texto wt desta vez. A string é substituída e os dados são gravados neste modo e, em seguida, o arquivo é fechado.

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

Artigo relacionado - Python File

Artigo relacionado - Python String