Modification des données d'un fichier
Fabrice
-
Phil_1857 Messages postés 1872 Date d'inscription Statut Membre Dernière intervention -
Phil_1857 Messages postés 1872 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche à créer un script en python, qui lors de son lancement, pourrait modifier les caractères d'un fichier .txt sélectionné.
Par exemple si dans le fichier texte il y a marqué "bonjour", et bien je souhaiterais que tous les "bonjour" soit remplacé par "bonsoir".
Avez-vous une idée ?
Merci d'avance,
Je cherche à créer un script en python, qui lors de son lancement, pourrait modifier les caractères d'un fichier .txt sélectionné.
Par exemple si dans le fichier texte il y a marqué "bonjour", et bien je souhaiterais que tous les "bonjour" soit remplacé par "bonsoir".
Avez-vous une idée ?
Merci d'avance,
Configuration: Windows / Chrome 83.0.4103.116
A voir également:
- Modification des données d'un fichier
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Suivi des modifications word - Guide
11 réponses
Bonjour Fabrice,
C'est logique, relis ton code:
tu lis tout le fichier avec fichier.read():
fruits
Légumes
tomate
ensuite, tu remplace fruits par pomme dans texte:
pomme
Légumes
tomate
et tu écris tout ca dans le 2eme fichier
(idem avec Légumes: tu remplaces et tu écris tout à nouveau dans le 2eme fichier
Essaie comme ça:
apres, si tu veux détruire le 1er fichier et renommer le 2eme:
C'est logique, relis ton code:
tu lis tout le fichier avec fichier.read():
fruits
Légumes
tomate
ensuite, tu remplace fruits par pomme dans texte:
pomme
Légumes
tomate
et tu écris tout ca dans le 2eme fichier
(idem avec Légumes: tu remplaces et tu écris tout à nouveau dans le 2eme fichier
Essaie comme ça:
W1 = "pomme" W2 = "Courgette" with open("a.txt") as fichier, open("b.txt", "w") as nouveaufichier: texte = fichier.read() texte = texte.replace("fruit", W1) texte = texte.replace("Légume", W2) nouveaufichier.write(texte)
apres, si tu veux détruire le 1er fichier et renommer le 2eme:
import os os.remove('a.txt') os.rename('b.txt', 'a.txt')
Tu veux dire un truc comme ça:
donc si la cle = 'A', la liste de remplacement est remplacement_dict['A']
donc ['fruit','pomme']
remplacement_dict = {'A':['fruit','pomme'], 'B':['fruits','poire']}
donc si la cle = 'A', la liste de remplacement est remplacement_dict['A']
donc ['fruit','pomme']
texte = texte.replace(remplacement_dict[cle][0], remplacement_dict[cle][1])
Bonjour Fabrice,
As-tu déjà réfléchi, ne serait-ce que sur le papier, aux étapes successives pour en arriver à ce que tu veux ?
(saisir le nom du fichier, l'ouvrir, le lire, etc ...)
As-tu déjà réfléchi, ne serait-ce que sur le papier, aux étapes successives pour en arriver à ce que tu veux ?
(saisir le nom du fichier, l'ouvrir, le lire, etc ...)
Bonjour,
Et merci pour ta réponse. Pour les étapes d'ouvertures et de lecture de fichier j'ai déjà quelques commandes élémentaires en tête comme
Mais je ne comprends pas vraiment comment modifier des caractères déjà présent dans un fichier.
Et merci pour ta réponse. Pour les étapes d'ouvertures et de lecture de fichier j'ai déjà quelques commandes élémentaires en tête comme
fic = open("fichiertest.txt", "r") fic = open("fichiertest.txt", "w") lecture = fic.read() print(fic)
Mais je ne comprends pas vraiment comment modifier des caractères déjà présent dans un fichier.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tu as bien commencé mais le 2eme fichier doit avoir un nom différent
En effet, il n'est pas possible de modifier "à la volée" le contenu d'un fichier
Il faut donc:
1_ ouvrir le fichier en lecture (fic1 = .............)
2_ ouvrir un fichier temporaire en écriture (fic2 = ....................)
3_lire une ligne
si elle ne contient pas 'bonjour', alors l'écrire dans le fichier tempo.
sinon, y remplacer 'bonjour' par 'bonsoir' et l'écrire dans le fichier tempo.
4_fermer les fichiers
5_detruire le fichier initial
6_ renommer le fichier tempo. avec le nom initial
En effet, il n'est pas possible de modifier "à la volée" le contenu d'un fichier
Il faut donc:
1_ ouvrir le fichier en lecture (fic1 = .............)
2_ ouvrir un fichier temporaire en écriture (fic2 = ....................)
3_lire une ligne
si elle ne contient pas 'bonjour', alors l'écrire dans le fichier tempo.
sinon, y remplacer 'bonjour' par 'bonsoir' et l'écrire dans le fichier tempo.
4_fermer les fichiers
5_detruire le fichier initial
6_ renommer le fichier tempo. avec le nom initial
A tout hasard: remplacer une chaine par une autre:
ligne = "Bonjour toto" ligne = ligne.replace("Bonjour", "Bonsoir") print(ligne) #imprime Bonsoir toto
Bonjour Phil_1857,
Je requière une nouvelle fois ton aide.
J'ai plus ou moins avancer, mais me heurte à un nouveau soucis.
Avec ce code je devrais pouvoir remplacer les mots "fruits" et "Légumes" en "pomme" et "Courgette'"
Cependant si mon fichier texte contient les mots :
Ce code va me renvoyer
Alors qu'il devrait me renvoyer uniquement :
J'imagine que je dois mettre en place une boucle for, mais je n'ai pas tellement de piste à l'heure actuelle.
Merci d'avance pour ton aide.
Je requière une nouvelle fois ton aide.
J'ai plus ou moins avancer, mais me heurte à un nouveau soucis.
W1 = "pomme" W2 = "Courgette" with open("a.txt") as fichier, open("b.txt", "w") as nouveaufichier: texte = fichier.read() nouveau_texte = texte.replace("fruit", W1) nouveaufichier.write(nouveau_texte) nouveau_texte2 = texte.replace("Légume", W2) nouveaufichier.write(nouveau_texte2)
Avec ce code je devrais pouvoir remplacer les mots "fruits" et "Légumes" en "pomme" et "Courgette'"
Cependant si mon fichier texte contient les mots :
fruit Légume tomate
Ce code va me renvoyer
pomme
Légume
tomatefruit
Légume
tomate
Alors qu'il devrait me renvoyer uniquement :
Pomme
Courgette
tomate
J'imagine que je dois mettre en place une boucle for, mais je n'ai pas tellement de piste à l'heure actuelle.
Merci d'avance pour ton aide.
Merci beaucoup pour ton aide.
J'aurais une dernière question.
J'ai des mots qui sont les mêmes au départ mais qui changent en fonction de clés. Est-ce que tu as une idée avec un système de dictionnaire peut être, qui permettrait que pour une clé "A" fruit devienne pomme mais que pour une clé "B" fruit devienne poire ?
Merci encore.
J'aurais une dernière question.
J'ai des mots qui sont les mêmes au départ mais qui changent en fonction de clés. Est-ce que tu as une idée avec un système de dictionnaire peut être, qui permettrait que pour une clé "A" fruit devienne pomme mais que pour une clé "B" fruit devienne poire ?
Merci encore.