Remplacer une ligne dans un fichier en Python
-
Utilisez la boucle
for
avec la fonctionreplace()
pour remplacer une ligne dans un fichier en Python - Créez un nouveau fichier avec le contenu actualisé et remplacez le fichier d’origine en Python
-
Utilisez la fonction
fileinput.input()
pour remplacer le texte dans une ligne en Python -
Utilisez le module
re
pour remplacer le texte dans une ligne en Python
La gestion des fichiers est considérée comme un aspect essentiel de toute application Web. Semblable à la plupart des langages de programmation, Python est parfaitement capable de prendre en charge la gestion de fichiers. Il vous permet de traiter des fichiers de différents types, essentiellement pour effectuer certaines opérations de base comme la lecture et l’écriture. Il fournit également d’autres options de gestion de fichiers pour faire fonctionner les fichiers.
Ce tutoriel montre les différentes méthodes disponibles pour remplacer une ligne dans un fichier en Python.
Pour illustrer les différentes manières de remplacer une ligne dans un fichier dans cet article, nous allons prendre un fichier texte, motivation.txt
.
Fichier texte (motivation.txt
):
There are always second chances in life. Anybody can bounce back from hardships. The hardships that we face are just a test to check our will. A strong will is all it takes to bounce back from a loss.
Le chemin du répertoire de stockage de ce fichier peut être différent sur l’ordinateur du lecteur ; par conséquent, il est conseillé d’ajuster en conséquence.
Utilisez la boucle for
avec la fonction replace()
pour remplacer une ligne dans un fichier en Python
La fonction open()
est utilisée pour ouvrir un fichier en Python. Le fichier peut être ouvert au format texte ou binaire, selon le programmeur. La fonction open()
a plusieurs modes, et tous offrent différentes options d’accessibilité pour ouvrir un fichier.
La simple boucle for
est une manière conventionnelle de parcourir chaque ligne du fichier texte donné et de trouver la ligne que nous voulons remplacer. Ensuite, la ligne désirée peut être remplacée en utilisant la fonction replace()
. Tout cela se fait en mode read
. Enfin, le fichier est ouvert en mode écriture
, et le contenu remplacé est écrit dans le fichier donné.
Le code suivant utilise la boucle for
avec la fonction replace()
.
# opening the file in read mode
file = open("motivation.txt", "r")
replacement = ""
# using the for loop
for line in file:
line = line.strip()
changes = line.replace("hardships", "situations")
replacement = replacement + changes + "\n"
file.close()
# opening the file in write mode
fout = open("motivation.txt", "w")
fout.write(replacement)
fout.close()
Créez un nouveau fichier avec le contenu actualisé et remplacez le fichier d’origine en Python
Plusieurs fonctions sont à l’œuvre pour mettre en œuvre ce processus. La connaissance du processus de toutes ces fonctions est nécessaire pour exécuter cette méthode avec succès. Nous devons importer plusieurs fonctions de trois modules dans le code Python.
- Tout d’abord, nous devons importer la fonction
mkstemp()
du moduletempfile
. Cette fonction est utilisée pour renvoyer un tuple en sortie avec un chemin et un descripteur de fichier. - Ensuite, il faut importer deux fonctions du module
shutil
. La première fonction est la fonctioncopymode()
, qui est utilisée pour copier les bits d’autorisation d’une source vers le chemin de destination. La deuxième fonction est la fonctionmove()
, qui permet de déplacer des fichiers d’un endroit à un autre. - Enfin, il faut importer la fonction
remove()
du moduleOS
. Cette fonction permet la suppression d’un chemin.
Tous ces modules doivent être importés dans le code Python actuel pour exécuter le code sans aucune erreur. Un exemple de code qui implémente de cette manière est le suivant.
from tempfile import mkstemp
from shutil import move, copymode
from os import fdopen, remove
# storing the path where the file is saved on your device as a variable
path = "C:\\Users\Admin\Desktop\python\test\motivation.txt"
def replacement(filepath, hardships, situations):
# Creating a temp file
fd, abspath = mkstemp()
with fdopen(fd, "w") as file1:
with open(filepath, "r") as file0:
for line in file0:
file1.write(line.replace(hardships, situations))
copymode(filepath, abspath)
remove(filepath)
move(abspath, filepath)
replacement(path, "hardships", "situations")
Utilisez la fonction fileinput.input()
pour remplacer le texte dans une ligne en Python
La méthode fileinput.input()
obtient le fichier en entrée ligne par ligne et est principalement utilisée pour ajouter et mettre à jour les données dans le fichier donné.
Les modules fileinput
et sys
doivent être importés dans le code Python actuel afin d’exécuter le code sans erreur. Le code suivant utilise la fonction fileinput.input()
pour remplacer le texte dans une ligne en Python.
import fileinput
import sys
def replacement(file, previousw, nextw):
for line in fileinput.input(file, inplace=1):
line = line.replace(previousw, nextw)
sys.stdout.write(line)
var1 = "hardships"
var2 = "situations"
file = "motivation.txt"
replacement(file, var1, var2)
Utilisez le module re
pour remplacer le texte dans une ligne en Python
Le module re
est un module intégré que Python fournit aux programmeurs qui traitent des expressions régulières, et il doit être importé dans le code. Il aide à effectuer la tâche de recherche d’un motif dans une chaîne particulière donnée.
Dans cette méthode, nous utilisons deux fonctions, à savoir, re.compile()
et re.escape()
, du module RegEx
. La fonction re.compile()
est utilisée pour générer un objet d’expression régulière à partir du modèle d’expression régulière, qui est ensuite utilisé pour la correspondance. La fonction re.compile()
est utilisée pour ignorer ou échapper les caractères spéciaux en Python.
Le code suivant utilise plusieurs fonctions du module Regex
pour remplacer le texte dans une ligne en Python.
import re
def replacement(Path, text, subs, flags=0):
with open(filepath, "r+") as f1:
contents = f1.read()
pattern = re.compile(re.escape(text), flags)
contents = pattern.sub(subs, contents)
f1.seek(0)
f1.truncate()
f1.write(file_contents)
filepath = "motivation.txt"
text = "hardships"
subs = "situations"
replacement(filepath, text, subs)
Ici, nous avons également utilisé une fonction sub()
pour remplacer le motif donné par une chaîne ou le résultat d’une fonction spécifiée.
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.
LinkedInArticle connexe - Python File
- Comment obtenir tous les fichiers d'un répertoire
- Comment ajouter du texte à un fichier en Python
- Comment vérifier si un fichier existe en Python
- Comment trouver des fichiers avec une certaine extension seulement en Python
- Comment lire des lignes spécifiques d'un fichier en Python
- Lire un fichier texte et imprimer son contenu en Python