Bonjour à toutes et à tous,
Je rencontre depuis quelques jours un problème avec une boucle FOR, enfin je suppose...
J'ai une fonction qui va lire des fichiers stockés dans un répertoire et inscrire différentes données (nom, taille du fichier, nom de la société...) dans un dictionnaire (dico).
Selon le type de fichier, le "parsage" va s'effectuer soit sur les 2 premiers caractères soit sur les 11 premiers caractères. Une comparaison avec une dictionnaire (société) me permet de déterminer le nom de la société. Jusqu'ici le script fonctionne correctement.
En revanche, lorsque j'essaye d'ajouter le type d'équipement dans le dictionnaire (dico), le type d'équipement s'inscrit correctement mais les données des sociétés débloquent complétement. Je me base sur la même méthode que précédemment, à savoir un dictionnaire (equipement) auquel je vais me référer pour déterminer l'équipement.
J'arrive à obtenir dans le dictionnaire soit le nom de la société soit le type d'équipement mais jamais les 2 ensemble.
J'ai l'impression que le problème vient de la boule FOR qui à un moment ne s'initialise plus... Bref, je bloque.
Pouvez-vous m'éclairer à ce sujet.
Je joins en fichier ZIP le jeu de données et le code source ci-dessous.
Cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 import os import sys chemin_destination = 'C:/Users/Berty/Desktop/Berty/P.Y.M/Erreurs Stats/Destination/' os.chdir(chemin_destination) def retraitement(): # Création d'un dictionnaire pour recevoir le flux des données. dico = {} # Déclaration d'un dictionnaire permettant de relier la statistique au nom # de la société. societe = {"67" : "SOCIETE 1", "0K" : "SOCIETE 2", "6N" : "SOCIETE 3",\ "6Q" : "SOCIETE 4", "6K" : "SOCIETE 5","66" : "SOCIETE 6", "70" : "SOCIETE 7",\ "72" : "SOCIETE 8", "6M" : "SOCIETE 9","6U" : "SOCIETE 10", "6O" : "SOCIETE 11",\ "6Z" : "SOCIETE 12", "6R" : "SOCIETE 13", "6L" : "SOCIETE 14", "6T" : "SOCIETE 15",\ "6P" : "SOCIETE 16", "factures_06" : "SOCIETE 8","factures_10" : "SOCIETE 8",\ "factures_07" : "SOCIETE 7", "factures_08" : "SOCIETE 7", "factures_09" : "SOCIETE 7",\ "factures_04" : "SOCIETE 2", "factures_03" : "SOCIETE 2", "" : "INCONNU"} # Déclaration d'un dictionnaire permettant de relier la statistique # à l'équipement. equipement = {"factures" : "EQUIP LOURD", "B4600" : "EQUIP SIMPLIF", \ "BC430" : "EQUIP PORTATIF","BC680" : "EQUIP LEGER", "" : "EQUIP EMBARQUE"} for element, lectureexcel in enumerate (os.listdir(chemin_destination)) : # Détermination de la taille du fichier. taille = round(os.path.getsize(lectureexcel)/1024,3) # for cle, valeur in societe.items() : if "fa" in lectureexcel : if cle in lectureexcel[0:11] : dico[element] = lectureexcel, valeur, taille else: if cle in lectureexcel[0:2] : dico[element] = lectureexcel, valeur, taille for cleequip, valeurequip in equipement.items() : if cleequip in lectureexcel : dico[element] = lectureexcel, valeur, taille, valeurequip for cle, valeur in dico.items(): print(cle, valeur) return retraitement retraitement()
Partager