Como fazer alterações em vários arquivos usando Python

Digamos que alguém esteja familiarizado com a ortografia britânica e decidiu concluir sua graduação nos EUA. Ele é convidado a escrever um artigo sobre Python para a classe. Ele é bem versado em Python e não tem problemas em escrever o artigo. Ele estava falando sobre imagens em uma parte de seu artigo e escreveu mais de uma vez a palavra grey (ortografia britânica) em vez de gray (ortografia dos EUA), além de neighbourhood (ortografia britânica) em vez de neighborhood (ortografia dos EUA). Mas ele está agora nos EUA e tem que passar por todas as palavras escritas da maneira britânica e substituí-las pelas grafias americanas.

Este é um dos muitos cenários em que precisamos alterar alguma ortografia ou erro na múltiplo Localizações.

Nesta dica rápida, mostrarei um exemplo em que temos cinco arquivos de texto que escreveram incorretamente meu nome. Ou seja, em vez de escrever Abder, Adber está escrito. O exemplo mostrará como podemos usar o Python para corrigir a ortografia do meu nome em todos os arquivos de texto incluídos em um diretório.

Vamos começar!

Preparação de dados

Antes de prosseguirmos com o exemplo, vamos preparar os dados (arquivos de texto) com os quais queremos trabalhar. Vá em frente e baixe o diretório com seus arquivos. Descompacte o diretório e agora está tudo pronto.

Como você pode ver, temos um diretório chamado Abder que contém cinco arquivos diferentes chamados 1,2,3,4, and 5.

Implementação

Vamos para a parte divertida. A primeira coisa que precisamos fazer é ler o conteúdo do diretório Abder. Para isso, podemos utilizar o listdir() método, como segue:

Se tentarmos ver o que está dentro do diretório, podemos fazer o seguinte:

Nesse caso, obteremos:

Isso mostra que temos cinco rft arquivos dentro do diretório.

Para ter certeza de que estamos trabalhando com o diretório atual (diretório de interesse), podemos usar chdir do seguinte modo:

A próxima coisa que precisamos fazer é percorrer todos os arquivos no diretório Abder. Podemos usar um for-loop do seguinte modo:

Como queremos procurar em cada um dos cinco arquivos do diretório e procurar Adbero normal nesta fase é abrir e ler o conteúdo de cada arquivo:

Agora vem um passo vital, especialmente quando se fala em correspondência de padrões, no nosso caso, procurando por Adber. Esta etapa é o uso de expressões regulares. Em Python, para usar expressões regulares, usaremos o módulo re.

Nós estaremos usando duas funções principais deste módulo. O primeiro é compilar():

Compile um padrão de expressão regular em um objeto de expressão regular, que pode ser usado para correspondência usando seu match()e search() métodos.

E o segundo é sub(), para substituir a ortografia errada pela correta. Faremos assim o seguinte:

Finalmente, queremos escrever o novo texto após a substituição em nossos arquivos, como segue:

Juntando tudo

Nesta seção, vamos ver como todo o script Python, que procurará Adber em cada arquivo e substitua isso por Abdervai olhar:

Como podemos ver, o Python facilita muito a realização de modificações em vários arquivos usando o for-loop. Outra parte importante a ser lembrada aqui é o uso de expressões regulares para correspondência de padrões.

Se você quiser saber mais sobre os loops do Python, consulte A Smooth Refresher on Python’s Loops. E, para obter mais informações sobre expressões regulares, consulte Expressões regulares em Python.

[ad_2]

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *