A voir également:
- Transformer des variables en dictionnaire sous Python
- Télécharger dictionnaire larousse pdf gratuit - Télécharger - Dictionnaires & Langues
- Télécharger dictionnaire médical larousse gratuit pdf - Télécharger - Dictionnaires & Langues
- Citizen code python avis - Accueil - Outils
- Télécharger dictionnaire français gratuit pdf - Télécharger - Bureautique
3 réponses
jee pee
Messages postés
40481
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
27 novembre 2024
9 428
16 juil. 2020 à 11:15
16 juil. 2020 à 11:15
Bonjour,
Et où se situe exactement ton problème ?
Car cela semble simple, une boucle qui lit un fichier texte et qui découpe la ligne en 2 pour initialiser clé et valeur du dictionnaire.
Et où se situe exactement ton problème ?
Car cela semble simple, une boucle qui lit un fichier texte et qui découpe la ligne en 2 pour initialiser clé et valeur du dictionnaire.
Pour être plus précis, voici mon code :
Il me permet de modifier le texte de mon fichier a.txt sur le fichier b.txt par rapport à ce que j'ai indiqué dans mon dictionnaire.
Le souci c'est que j'ai déjà un dictionnaire de créer dans un autre fichier ou j'ai associé plusieurs centaines de variables à une valeur (exemple A1 = "bonjour").
J'aimerais dans un premier temps pouvoir récupérer toutes ces variables, et ensuite pouvoir leur associer une clé (j'ai commencé à regarder au niveau des tuples).
On aurait par exemple pour la clé "P1" la variable "A1" qui renvoie "bonjour" et pour la clé "P2" la même variable "A1" mais qui revoie "bonsoir".
J'ai essayé de faire au mieux pour expliquer mon problème mais j'avoue que je bloque un peu..
Merci pour ton aide.
import re repldict = {'bonjour':'bonsoir'} def replfunc(match): return repldict[match.group(0)] regex = re.compile('|'.join(re.escape(x) for x in repldict)) with open('a.txt') as fin, open('b.txt','w') as fout: for line in fin: fout.write(regex.sub(replfunc,line))
Il me permet de modifier le texte de mon fichier a.txt sur le fichier b.txt par rapport à ce que j'ai indiqué dans mon dictionnaire.
Le souci c'est que j'ai déjà un dictionnaire de créer dans un autre fichier ou j'ai associé plusieurs centaines de variables à une valeur (exemple A1 = "bonjour").
J'aimerais dans un premier temps pouvoir récupérer toutes ces variables, et ensuite pouvoir leur associer une clé (j'ai commencé à regarder au niveau des tuples).
On aurait par exemple pour la clé "P1" la variable "A1" qui renvoie "bonjour" et pour la clé "P2" la même variable "A1" mais qui revoie "bonsoir".
J'ai essayé de faire au mieux pour expliquer mon problème mais j'avoue que je bloque un peu..
Merci pour ton aide.
jee pee
Messages postés
40481
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
27 novembre 2024
9 428
16 juil. 2020 à 12:14
16 juil. 2020 à 12:14
Je n'ai pas beaucoup plus saisi ;-)
pour charger un dictionnaire depuis un fichier, tu peux avoir quelque chose comme
pour charger un dictionnaire depuis un fichier, tu peux avoir quelque chose comme
dict = {} with open("dict0.txt") as fichier: for ligne in fichier: ligne=ligne.rstrip() cleval=ligne.split("=") dict[cleval[0]] = cleval[1] print(dict)
Merci beaucoup pour ton message ça m'aide déjà beaucoup.
Le dernier point qui me pose problème c'est qu'un même mot peut être présent plusieurs fois à des endroits différents. Mais j'aimerai que ce mot en fonction de sa position ne devienne pas le même mot.
Par exemple si le mot "test" est présent 15 fois dans le texte. J'aimerais que la première fois il devienne "bonjour" mais que les autres fois il devienne "bonsoir".
Voilà l'idée.
J'ai pensé à des dictionnaires, dans des dictionnaires avec des clés différentes en fonction du dictionnaire. Mais je ne sais pas si cela est réalisable.
Merci encore.
Le dernier point qui me pose problème c'est qu'un même mot peut être présent plusieurs fois à des endroits différents. Mais j'aimerai que ce mot en fonction de sa position ne devienne pas le même mot.
Par exemple si le mot "test" est présent 15 fois dans le texte. J'aimerais que la première fois il devienne "bonjour" mais que les autres fois il devienne "bonsoir".
Voilà l'idée.
J'ai pensé à des dictionnaires, dans des dictionnaires avec des clés différentes en fonction du dictionnaire. Mais je ne sais pas si cela est réalisable.
Merci encore.
jee pee
Messages postés
40481
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
27 novembre 2024
9 428
16 juil. 2020 à 13:25
16 juil. 2020 à 13:25
je n'ai toujours pas saisi ce que tu veux faire ...
Fabrice
>
jee pee
Messages postés
40481
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
27 novembre 2024
16 juil. 2020 à 15:07
16 juil. 2020 à 15:07
Avec ce code :
J'aimerai pouvoir choisir entre ma liste "A" ou ma liste "B" et remplacer les mots en fonction de cette liste.
Je pense que ça se joue au niveau de ligne [match.group(0)], mais je ne parviens pas à trouver de solution...
import re remplacement_dict = {"A":{'fruit':'pomme','frut':'poulpe'}, "B":{'fruit':'poire','pistache': 'tomate'}} with open("a.txt") as fichier, open("b.txt", "w") as nouveaufichier: texte = fichier.read() # texte = texte.replace(remplacement_dict['A'][0], remplacement_dict['A'][1]) def replfunc(match): return remplacement_dict[match.group(0)] regex = re.compile('|'.join(re.escape(x) for x in remplacement_dict)) with open('a.txt') as fin, open('b.txt', 'w') as fout: for line in fin: fout.write(regex.sub(replfunc, line))
J'aimerai pouvoir choisir entre ma liste "A" ou ma liste "B" et remplacer les mots en fonction de cette liste.
Je pense que ça se joue au niveau de ligne [match.group(0)], mais je ne parviens pas à trouver de solution...
jee pee
Messages postés
40481
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
27 novembre 2024
9 428
>
Fabrice
16 juil. 2020 à 15:35
16 juil. 2020 à 15:35
je passe mon tour, car n'arrivant toujours pas à entrevoir ce que tu cherches à obtenir.
Fabrice
>
jee pee
Messages postés
40481
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
27 novembre 2024
16 juil. 2020 à 15:36
16 juil. 2020 à 15:36
Merci quand même pour ton aide.