Dictionnaire clé fichiers valeurs fonction
Résolu
jeremyccm
Messages postés
50
Date d'inscription
Statut
Membre
Dernière intervention
-
jeremyccm Messages postés 50 Date d'inscription Statut Membre Dernière intervention -
jeremyccm Messages postés 50 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Souhaitant utiliser des informations qui ressemblent à des paires "clé:valeurs" (avec beaucoup de valeurs),
j'ai toujours en tête de créer des fichiers textes où le nom de chaque fichier ferait office de clé et les lignes de chaque fichier texte feraient office de valeurs.
Je ne sais pas si le concept est pratique en python, ni comment le mettre en oeuvre, je sais à peine créer et gérer des dossiers et fichiers via python.
Mais si c'est le cas, je suppose qu'une fonction se chargera de transformer en premier lieu, le nom du fichier en clé et en second lieu, les lignes en valeurs, ce qui débouchera à la création d'un dictionnaire. C'est à partir de ce moment là qu'il serait possible d'utiliser les fonctions random, choice, get (etc) qui s'appliquent au dictionnaire.
J'ai besoin d'éclaircissement à ce niveau là, s'il vous plait.
J'ai également l'opportunité d'utiliser le format json ou les classes, mais il serait (selon moi) plus fastidieux de rentrer chaque valeur directement...
Souhaitant utiliser des informations qui ressemblent à des paires "clé:valeurs" (avec beaucoup de valeurs),
j'ai toujours en tête de créer des fichiers textes où le nom de chaque fichier ferait office de clé et les lignes de chaque fichier texte feraient office de valeurs.
Je ne sais pas si le concept est pratique en python, ni comment le mettre en oeuvre, je sais à peine créer et gérer des dossiers et fichiers via python.
Mais si c'est le cas, je suppose qu'une fonction se chargera de transformer en premier lieu, le nom du fichier en clé et en second lieu, les lignes en valeurs, ce qui débouchera à la création d'un dictionnaire. C'est à partir de ce moment là qu'il serait possible d'utiliser les fonctions random, choice, get (etc) qui s'appliquent au dictionnaire.
J'ai besoin d'éclaircissement à ce niveau là, s'il vous plait.
J'ai également l'opportunité d'utiliser le format json ou les classes, mais il serait (selon moi) plus fastidieux de rentrer chaque valeur directement...
A voir également:
- Dictionnaire clé fichiers valeurs fonction
- Clé usb non détectée - Guide
- Clé windows 8 - Guide
- Télécharger dictionnaire larousse pdf gratuit - Télécharger - Dictionnaires & Langues
- Fonction si et - Guide
- Formater clé usb - Guide
4 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, peux-tu nous en dire plus sur ton contexte et tes objectifs?
S'il vous plait, auriez vous une idée de comment on fait en python pour qu'un fichier lambda soit l'équivalent d'une clé de dictionnaire lambda ? Est-ce tout simplement possible ? Doit-on faire autrement ?
Dans le but qu'un ensemble de fichiers soit sélectionné aléatoirement à partir d'un répertoire qui en contient beaucoup.
Et pour que par la suite, à partir des fichiers sélectionné précédemment, en mode lecture, le programme sélectionne aléatoirement une valeur, pour chaque fichier, qui correspond en fait, à une ligne dans un des fichiers textes selectionné
Est-ce que ma question est comprise ?
Cordialement
Dans le but qu'un ensemble de fichiers soit sélectionné aléatoirement à partir d'un répertoire qui en contient beaucoup.
Et pour que par la suite, à partir des fichiers sélectionné précédemment, en mode lecture, le programme sélectionne aléatoirement une valeur, pour chaque fichier, qui correspond en fait, à une ligne dans un des fichiers textes selectionné
Est-ce que ma question est comprise ?
Cordialement
Voilà , j'ai un peu avancé, mais je ne parviens pas à piocher aléatoirement une ligne du fichier:
pour le moment j'ai le contenu du fichier qui est écrit, je voudrais qu'une seule ligne soit choisie aléatoirement et qu'il soit possible de répéter l'opération sans que ce qui a été choisi (fichier) ne soit réutilisé.
import os, random, glob path='/Users/Mac/Desktop/programme/script1.py' list = os.listdir('/Users/Mac/Desktop/programme/') def fonction(): liste_file = glob.glob('/Users/Mac/Desktop/programme/*.txt')#liste de fichier txt aleatoire = random.choice(liste_file)#un fichier au hasard myfile=open(aleatoire, 'r') with myfile as f: for line in f.readlines(): ak=line.strip() print(ak) fonction()
pour le moment j'ai le contenu du fichier qui est écrit, je voudrais qu'une seule ligne soit choisie aléatoirement et qu'il soit possible de répéter l'opération sans que ce qui a été choisi (fichier) ne soit réutilisé.
n'as-tu aucune idée de comment éviter d'utiliser plusieurs fois le même fichier? comment ferais-tu dans la vie réelle, si tu devais choisir une carte au hasard dans un paquet de cartes, puis éviter que cette carte ne participe au tirage suivant?
quelles sont les pistes auxquelles tu as pensé pour choisir une ligne au hasard?
quelles sont les pistes auxquelles tu as pensé pour choisir une ligne au hasard?
pour choisir une liste au hasard, j'utiliserai la fonction random, monsieur.
pour le reste j'imagine qu'il faille créer une liste vide, et
pour 2 fichiers
si il le fichier est déjà dans la liste, on ne fait rien, sinon on utilise .append pour ajouter le nouveau fichier à la liste
Si je dois faire plusieurs tirage, je dois faire une boucle avec range()
ce qui fonctionne
pour le reste j'imagine qu'il faille créer une liste vide, et
pour 2 fichiers
liste_fichier = [] for i in range (2): aleatoire = random.choice(liste_file)#un fichier au hasard if aleatoire in liste_fichier: pass else: liste_fichier.append(aleatoire)
si il le fichier est déjà dans la liste, on ne fait rien, sinon on utilise .append pour ajouter le nouveau fichier à la liste
Si je dois faire plusieurs tirage, je dois faire une boucle avec range()
ce qui fonctionne
je suis dans la continuité du projet initial qui consiste à déterminer une valeur aléatoire à partir d'un fichier texte dont le fichier lui-même serait une clé déterminée aléatoirement (parce qu'il y a plusieurs fichiers).
Tout cela, en appliquant la fonction que nous avions sur le topic "Valeur random de clef random du dictionnaire"
En pratique, dans ce dossier, il y a deux fichiers txt :
il faut adapter cela, le but étant, de pouvoir utiliser le code ci-dessous :
Merci pour votre aide précieuse.
PS: bien sûr plus mes connaissances avancerons plus je m'orienterai sur MySQL ou autre pour que le contenu du fichier texte soit hébergé par exemple.
Donc on se retrouve avec des listes qui contiennent les valeurs des fichiers, il faudra convertir ces listes en valeurs de dictionnaire et les fichiers en clé.
cela ne pose pas de problème pour les valeurs, mais les clés ne doivent-elles pas être définies en premier?