Transformer des variables en dictionnaire sous Python
Fabrice
-
Fabrice -
Fabrice -
Bonjour,
J'ai référencé plusieurs centaines de variables dans un fichier ayant chacune une valeur.
Ces variables commences toutes par le même modèle : "AB" exemple "AB1= pomme", "AB2= carotte", etc..
Et j'aimerais pouvoir mettre toutes ces variables dans un dictionnaire. Pour pouvoir récupérer les valeurs sans être obligé de rentrer chaque "AB" dans mon dictionnaire.
Avez vous des idées ?
Merci d'avance
J'ai référencé plusieurs centaines de variables dans un fichier ayant chacune une valeur.
Ces variables commences toutes par le même modèle : "AB" exemple "AB1= pomme", "AB2= carotte", etc..
Et j'aimerais pouvoir mettre toutes ces variables dans un dictionnaire. Pour pouvoir récupérer les valeurs sans être obligé de rentrer chaque "AB" dans mon dictionnaire.
Avez vous des idées ?
Merci d'avance
Configuration: Windows / Edge 18.17763
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
- Transformer majuscule en minuscule word - Guide
- Transformer une image en icone - Guide
3 réponses
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.
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.
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...