Dites que quelqu'un connaît l'orthographe britannique et a décidé de terminer ses études aux États-Unis. On lui demande d'écrire un article sur Python pour la classe. Il connaît bien le python et n’a aucun problème à écrire le papier. Il parlait d'images dans une partie de son papier et écrivit plus d'une fois le mot gris
(Orthographe britannique) au lieu de gris
(Orthographe américaine), en plus de quartier
(Orthographe britannique) au lieu de quartier
(Orthographe américaine). Mais il est maintenant aux États-Unis et doit lire tous les mots orthographiés à la britannique et les remplacer par l'orthographe américaine..
C’est l’un des nombreux scénarios dans lesquels nous devons modifier une orthographe ou une erreur dans plusieurs Emplacements.
Dans cette astuce, je vais vous montrer un exemple où nous avons cinq fichiers texte qui ont mal orthographié mon nom. C'est, au lieu d'écrire Abder
, Adber
est écrit. L'exemple vous montrera comment utiliser Python pour corriger l'orthographe de mon nom dans tous les fichiers texte inclus dans un répertoire..
Commençons!
Avant de passer à l’exemple, préparons les données (fichiers texte) avec lesquelles nous souhaitons travailler. Allez-y et téléchargez le répertoire avec ses fichiers. Décompressez le répertoire et vous êtes maintenant tous ensemble.
Comme vous pouvez le constater, nous avons un répertoire nommé Abder
qui contient cinq fichiers différents nommés 1,2,3,4 et 5
.
Passons à la partie amusante. La première chose à faire est de lire le contenu du répertoire Abder
. Pour cela, nous pouvons utiliser le listdir ()
méthode, comme suit:
import os répertoire = os.listdir ('/ Users / DrAbder / Desktop / Abder')
Si nous essayons de voir le contenu du répertoire, nous pouvons procéder comme suit:
répertoire d'impression
Dans ce cas, nous aurons:
['.DS_Store', '1.rtf', '2.rtf', '3.rtf', '4.rtf', '5.rtf']
Cela montre que nous avons cinq rft
fichiers dans le répertoire.
Pour être sûr que nous travaillons avec le répertoire actuel (répertoire d’intérêt), nous pouvons utiliser chdir
comme suit:
os.chdir ('/ Users / DrAbder / Desktop / Abder')
La prochaine chose à faire est de parcourir tous les fichiers du répertoire. Abder
. Nous pouvons utiliser un pour-boucle
comme suit:
pour le fichier dans le répertoire:
Puisque nous voulons regarder dans chacun des cinq fichiers du répertoire et chercher Adber
, la chose normale à faire à ce stade est d'ouvrir et de lire le contenu de chaque fichier:
open_file = open (fichier, 'r') read_file = open_file.read ()
Vient maintenant une étape essentielle, en particulier quand on parle de correspondance de modèle, dans notre cas, la recherche de Adber
. Cette étape consiste à utiliser des expressions régulières. En Python, pour utiliser des expressions régulières, nous utiliserons le module re.
Nous allons utiliser deux fonctions principales de ce module. Le premier est compile ():
Compilez un motif d’expression régulière dans un objet d’expression régulière, qui peut être utilisé pour la correspondance à l’aide de son objet.rencontre()
etchercher()
les méthodes.
Et le second est sub (), pour substituer la mauvaise orthographe à la bonne. Nous allons donc faire ce qui suit:
regex = re.compile ('Adber') read_file = regex.sub ('Abder', read_file)
Enfin, nous voulons écrire le nouveau texte après substitution dans nos fichiers, comme suit:
write_file = open (fichier, 'w') write_file.write (read_file)
Dans cette section, voyons comment tout le script Python, qui cherchera Adber
dans chaque fichier et remplacez cela par Abder
, jettera un coup d'oeil:
import os, re directory = os.listdir ('/ Users / DrAbder / Desktop / Abder') os.chdir ('/ Users / DrAbder / Desktop / Abder') pour le fichier dans le répertoire: open_file = open (fichier, 'r' ) read_file = open_file.read () regex = re.compile ('Adber') read_file = regex.sub ('Abder', read_file) write_file = ouvert (fichier, 'w') write_file.write (read_file)
Comme nous pouvons le constater, Python facilite très bien la modification de plusieurs fichiers à l’aide de la pour-boucle
. Une autre partie importante à retenir ici est l’utilisation d’expressions régulières pour la correspondance des modèles..
Si vous voulez en savoir plus sur les boucles de Python, consultez la rubrique Actualisation en douceur des boucles de Python. Et, pour plus d'informations sur les expressions régulières, consultez Expressions régulières en Python..