Bonjour,
je suis débutant et je suis entrain de suivre le cours de programmation python, mais en même temps j'essaie de developper un programme qui permet
de créer x fichiers XML à partrir :
1- d'un model de fichier XML (pour la structure)
2- d'un fichier Excel pour les données
le contenu de mon fichier excel est le suivant ( à titre d'exemple)
Id_GROUPE NOM Sexe 1 NOM1 F 1 NOM2 1 1 NOM3 1 1 NOM4 1 2 NOM1 M 2 NOM2 2 3 NOM1 M 3 NOM2 2 3 NOM3 2
pour cette exemple je souhaite :
1- avoir 3 fichiers xml : Id_GROUPE_1.xml (pour le groupe de données 1) , Id_GROUPE_2.xml (pour le groupe de données 2) Id_GROUPE_3.xml (pour le groupe de données 2)
le contenu du fichier modèl XML est le suivant
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <SOURCE DESCRIPTION ="" NAME ="GROUPEx" OBJECTVERSION ="1" OWNERNAME ="ADMIN" VERSIONNUMBER ="1"> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="Id_GROUPE" VALUE ="x"/> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="NOM" VALUE ="NOMx"/> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="SEX" VALUE ="SEXx"/> </SOURCE>
le résultat souhaité pour le premier fichier xml (Id_GROUPE_1.xml):
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <SOURCE DESCRIPTION ="" NAME ="GROUPE1" OBJECTVERSION ="1" OWNERNAME ="ADMIN" VERSIONNUMBER ="1"> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="Id_GROUPE" VALUE ="1"/> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="NOM" VALUE ="NOM1"/> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="SEX" VALUE ="F"/> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="Id_GROUPE" VALUE ="1"/> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="NOM" VALUE ="NOM2"/> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="SEX" VALUE ="M"/> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="Id_GROUPE" VALUE ="1"/> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="NOM" VALUE ="NOM3"/> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="SEX" VALUE ="M"/> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="Id_GROUPE" VALUE ="1"/> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="NOM" VALUE ="NOM4"/> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="SEX" VALUE ="M"/> </SOURCE>
le résultat souhaité pour le premier fichier xml (Id_GROUPE_2.xml):
pour le premier groupe de données (id_groupe =1)
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <SOURCE DESCRIPTION ="" NAME ="GROUPE2" OBJECTVERSION ="1" OWNERNAME ="ADMIN" VERSIONNUMBER ="1"> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="Id_GROUPE" VALUE ="2"/> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="NOM" VALUE ="NOM3"/> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="SEX" VALUE ="M"/> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="Id_GROUPE" VALUE ="2"/> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="NOM" VALUE ="NOM4"/> <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar" NAME ="SEX" VALUE ="2"/> </SOURCE>
Pour la lecture du fichier Xlxs j'utilise la bibliothèque PANDAS, le programme qui permet de lire le fichier xls et le sotckage des informations dans un dictionnaire et le suivant :
pour la manipulation des fichierx XML, je souhaite utiliser le module ElementTree, mais je ne sais pas comment procéder
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 # -*-coding:Latin-1 -* import pandas as pd import os # On importe le module os qui dispose de variables # et de fonctions utiles pour dialoguer avec votre # système d'exploitation # Récupération du dossier du script root_dir = os.path.dirname(os.path.realpath(__file__)) # ------- Lecture du fichier Excel avec selection des colonnes # En paramètre l'emplacement du fichier, l'onglet et les colonnes df_xls = pd.read_excel(root_dir+"\\in\\exemple.xlsx", sheet_name='TABLES', usecols=['Id_GROUPE','NOM','Sexe']) , ## -------Itère sur les lignes d'un Dataframe groups = {} for group in df_xls.itertuples(): #d = {"Code_de_la_table": group.Code_de_la_table} d = { "Id_GROUPE": group.Id_GROUPE, "NOM": group.NOM, "Sexe": group.Sexe, } if group.Num_table not in groups: groups[group.Num_table] = [d] else: groups[group.Num_table].append(d) #print(groups) for key, value in groups.items(): print (key,value)
si vous avez une idée ou un exemple je vous remercie d'avance
Cordialement
Partager