Modification des données d'un fichier
Fermé
Fabrice
-
6 juil. 2020 à 08:59
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 16 juil. 2020 à 17:05
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 16 juil. 2020 à 17:05
A voir également:
- Modification des données d'un fichier
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Suivi des modifications word - Guide
- Ouvrir un fichier .bin - Guide
11 réponses
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 16 juil. 2020 à 11:52
Modifié le 16 juil. 2020 à 11:52
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')
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 16 juil. 2020 à 13:11
Modifié le 16 juil. 2020 à 13:11
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])
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
6 juil. 2020 à 09:21
6 juil. 2020 à 09:21
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
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
6 juil. 2020 à 10:28
6 juil. 2020 à 10:28
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
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 6 juil. 2020 à 12:01
Modifié le 6 juil. 2020 à 12:01
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.
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
16 juil. 2020 à 17:05
16 juil. 2020 à 17:05
Ok, donc tu peux marquer cet appel comme "résolu" :-)