Maj script
Le script est fonctionnel, il ne manque plus que la création des dossiers de destination ainsi que la copie des fichiers Ajout .gitignore
This commit is contained in:
parent
c9bfc721d3
commit
eae1be7470
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# Fichiers exclus du suivi de version
|
||||||
|
VISA_DORY_PRE.xlsx
|
||||||
|
|
||||||
|
#Dossier exclu du suivi de version
|
||||||
|
TEST/
|
||||||
11
README.md
11
README.md
@ -15,3 +15,14 @@ NOTES :
|
|||||||
|
|
||||||
|
|
||||||
David.
|
David.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
MODE D'EMPLOI
|
||||||
|
|
||||||
|
- Dans un dossier, copier les fichiers 'script_pretraitement_dory.py' et 'modele_VISA_DORY.xlsx'
|
||||||
|
- Dans ce dossier, copier l'archive a traiter (ex: Riverie.zip) et décompresser l'archive
|
||||||
|
- executer le script : Clic Droit --> Ouvrir avec ... --> Idle.exe. Puis F5 pour le démarrer
|
||||||
|
- Une fois terminé, un fichier de rapport 'VISA_DORY_PRE.xlsx'
|
||||||
|
- L'arborescence des dossiers est aussi créé (EN COURS: les dossiers ne sont pas encore créés)
|
||||||
Binary file not shown.
BIN
modele_VISA_DORY.xlsx
Normal file
BIN
modele_VISA_DORY.xlsx
Normal file
Binary file not shown.
@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
|
|
||||||
import os # getcwd(),
|
import os # getcwd(),
|
||||||
|
import openpyxl # gestion et manipulation de fichier Open XML
|
||||||
|
|
||||||
|
|
||||||
## TODO : voir le pb des dicos qui auraient plusieurs fois les memes clés (se qui n'est pas possible) à cause de plusieurs fichiers qui auraient la meme extension
|
## TODO : voir le pb des dicos qui auraient plusieurs fois les memes clés (se qui n'est pas possible) à cause de plusieurs fichiers qui auraient la meme extension
|
||||||
@ -130,8 +131,8 @@ class _Projet:
|
|||||||
non_conformes = {},
|
non_conformes = {},
|
||||||
nb_fichiers=0,
|
nb_fichiers=0,
|
||||||
conformite="Non conforme",
|
conformite="Non conforme",
|
||||||
projection="Pas de projection",
|
projection="Inconnu",
|
||||||
encodage="Pas d'encodage"):
|
encodage="Inconnu"):
|
||||||
self.nom = nom # - son nom - string
|
self.nom = nom # - son nom - string
|
||||||
self.necessaires = necessaires
|
self.necessaires = necessaires
|
||||||
self.auxiliaires = auxiliaires
|
self.auxiliaires = auxiliaires
|
||||||
@ -173,13 +174,13 @@ class _Projet:
|
|||||||
"""Récupère la projection des données géomatiques définie.
|
"""Récupère la projection des données géomatiques définie.
|
||||||
|
|
||||||
Lis la première ligne du fichier *.PRJ du projet
|
Lis la première ligne du fichier *.PRJ du projet
|
||||||
et controle la présence de la chaine "RGF_1993_Lambert_93"
|
et controle la présence de la chaine "Lambert_93"
|
||||||
"""
|
"""
|
||||||
if "prj" in self.necessaires:
|
if "prj" in self.necessaires:
|
||||||
df = open(self.necessaires["prj"].chemin)
|
df = open(self.necessaires["prj"].chemin)
|
||||||
chaine = df.readline()
|
chaine = df.readline()
|
||||||
df.close()
|
df.close()
|
||||||
if "RGF_1993_Lambert_93" in chaine:
|
if "Lambert_93" in chaine:
|
||||||
self.projection = "LAMBERT93"
|
self.projection = "LAMBERT93"
|
||||||
else:
|
else:
|
||||||
print(projet.nom, " : pas de PRJ trouvé --> pas de projection définie")
|
print(projet.nom, " : pas de PRJ trouvé --> pas de projection définie")
|
||||||
@ -297,14 +298,13 @@ for a in os.scandir():
|
|||||||
if a.is_dir():
|
if a.is_dir():
|
||||||
#il y a un dossier
|
#il y a un dossier
|
||||||
pas_de_dossier = False
|
pas_de_dossier = False
|
||||||
|
print(f"Dossier à Traiter trouvé : {a.name}")
|
||||||
|
racine = a
|
||||||
if pas_de_dossier:
|
if pas_de_dossier:
|
||||||
print("Pas de dossier trouvé...\nFin de programme\n")
|
print("Pas de dossier trouvé...\nFin de programme\n")
|
||||||
os.system("pause")
|
os.system("pause")
|
||||||
# fin du programme
|
# fin du programme
|
||||||
exit()
|
exit()
|
||||||
else:
|
|
||||||
print(f"Dossier à Traiter trouvé : {a.name}")
|
|
||||||
racine = a
|
|
||||||
|
|
||||||
|
|
||||||
# --analyser le dossier
|
# --analyser le dossier
|
||||||
@ -389,6 +389,12 @@ os.system("pause")
|
|||||||
|
|
||||||
# --produire le rapport
|
# --produire le rapport
|
||||||
# créer un classeur Excel
|
# créer un classeur Excel
|
||||||
|
# TODO pour le moment je vais partir sur un modele deja ecrit que j'ouvre
|
||||||
|
# Contrainte : l'opérateur doit placer le modèle dans le même dossier racine que le present script
|
||||||
|
classeur = openpyxl.load_workbook("modele_VISA_DORY.xlsx")
|
||||||
|
feuille = classeur.active
|
||||||
|
|
||||||
|
|
||||||
# /* Note : peut être utiliser un modèle pré-config */
|
# /* Note : peut être utiliser un modèle pré-config */
|
||||||
# --mettre en page la première feuille du classeur
|
# --mettre en page la première feuille du classeur
|
||||||
# inserer une image
|
# inserer une image
|
||||||
@ -396,21 +402,49 @@ os.system("pause")
|
|||||||
# écrire les formules de colorations auto des colonnes
|
# écrire les formules de colorations auto des colonnes
|
||||||
|
|
||||||
# Pour chaque projet du dictionnaire Faire
|
# Pour chaque projet du dictionnaire Faire
|
||||||
|
ligne_courante = 4
|
||||||
|
for nom_projet, projet in dico.items():
|
||||||
# --completer la feuille avec les infos du projet courant
|
# --completer la feuille avec les infos du projet courant
|
||||||
# /* Note : Chaque ligne de la feuille correspond à un projet */
|
# /* Note : Chaque ligne de la feuille correspond à un projet */
|
||||||
# /* Utiliser la config fournie en Constante */
|
# /* Utiliser la config fournie en Constante */
|
||||||
# écrire le nom du projet
|
# écrire le nom du projet
|
||||||
|
cell = feuille["A"+str(ligne_courante)]
|
||||||
|
cell.value = nom_projet
|
||||||
|
print(cell.value)
|
||||||
# écrire le type d'extention
|
# écrire le type d'extention
|
||||||
|
cell = feuille["B"+str(ligne_courante)]
|
||||||
|
if "shp" in projet.necessaires:
|
||||||
# /* Note : ce sera "SHP" pour les projets conformes et le type
|
# /* Note : ce sera "SHP" pour les projets conformes et le type
|
||||||
# natif pour les non-conformes */
|
# natif pour les non-conformes */
|
||||||
|
cell.value = "SHP"
|
||||||
|
else:
|
||||||
|
for extension in projet.non_conformes:
|
||||||
|
cell.value = extension.upper()
|
||||||
|
print(cell.value)
|
||||||
# écrire le nombre de fichiers du projet
|
# écrire le nombre de fichiers du projet
|
||||||
|
cell = feuille["C"+str(ligne_courante)]
|
||||||
|
cell.value = projet.nb_fichiers
|
||||||
# écrire l'encodage
|
# écrire l'encodage
|
||||||
|
cell = feuille["D"+str(ligne_courante)]
|
||||||
|
cell.value = projet.encodage
|
||||||
# écrire la projection
|
# écrire la projection
|
||||||
|
cell = feuille["E"+str(ligne_courante)]
|
||||||
|
cell.value = projet.projection
|
||||||
# écrire la validité (conformité)
|
# écrire la validité (conformité)
|
||||||
|
cell = feuille["F"+str(ligne_courante)]
|
||||||
|
if projet.conformite in "Conforme":
|
||||||
|
cell.value = "OK"
|
||||||
|
else:
|
||||||
|
cell.value = "FAIL"
|
||||||
|
|
||||||
|
ligne_courante+= 1
|
||||||
|
|
||||||
# encadrer le "tout" pour délimiter le tableau de la feuille
|
# encadrer le "tout" pour délimiter le tableau de la feuille
|
||||||
# Fin Pour
|
# Fin Pour
|
||||||
|
|
||||||
# /* Ici le rapport doit être correctement produit et remplie */
|
# /* Ici le rapport doit être correctement produit et remplie */
|
||||||
|
classeur.save("VISA_DORY_PRE.xlsx")
|
||||||
|
print("ligne_courante = ", ligne_courante )
|
||||||
|
|
||||||
# --produire le dossier de mise à disposition
|
# --produire le dossier de mise à disposition
|
||||||
# créer un dossier "Travail" et un dossier "Livraison"
|
# créer un dossier "Travail" et un dossier "Livraison"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user