Manipuler un répertoire téléphonique CSV en python
RésoluBast -
Bonjour,
J'ai généré un fichier csv (avec le bloc note) dans lequel il y a un répertoire téléphonique.
Nom,Prénom,Téléphone
JACK,Key,33123456789
LUCKAS,Brice,33123456790
Dans mon code python, je voudrais afficher le nom d'une seule personne, mais je n'y arrive pas. Quand j'essaye, ça met 2 noms.
file = open('fichier.txt', 'r', encoding='utf8') lesclef = file.readline() listeclef = lesclef.split(',') ligne = file.readline() while ligne != '': li = ligne.split(',') print(li[0]) ligne = file.readline() file.close()
Je voudrais par exemple que ça affiche juste JACK, mais dans mon cas, ça affiche JACK et LUCKAS. J'aimerais enfin que mon code n'importe pas de module.
Merci d'avance
- Manipuler un répertoire téléphonique CSV en python
- Répertoire téléphonique gratuit - Télécharger - Bureautique
- Règle en cm sur téléphone - Guide
- Localiser un indicatif téléphonique - Guide
- Citizen code python avis - Accueil - Outils
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
2 réponses
Bonjour,
Étant donné que tu as utilisé des noms de colonnes dans ton fichier csv, alors une liste de dictionnaire à l'instar de la classe DictReader du module csv sera à privilégier.
Une simple construction de cette liste de dictionnaires.
with open('fichier.txt') as f: items = [] keys = f.readline().strip().split(',') for lines in f.readlines(): values = lines.strip().split(',') items.append({keys[i]:v for i, v in enumerate(values)})
Toutes les valeurs seront donc dans la liste items, un print pour visualiser.
Ensuite, sachant que tu souhaites trouver les données de tel individu, alors un parcours de ta liste s'avérera nécessaire pour cette recherche.
for item in items: if item['Nom'] == 'JACK': print('>>>', item) break
De là, tu pourrais faire une fonction de recherche ayant 2 (ou 3) paramètres, valeur à rechercher, sur quelle clef.
def item_find(value, key): # returnera la ligne de la liste items ou la valeur de la clef sera value # ou None (ou une erreur) si pas trouvé
Bonne continuation.