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:
David Castex 2025-03-06 14:55:16 +01:00
parent c9bfc721d3
commit eae1be7470
5 changed files with 57 additions and 7 deletions

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
# Fichiers exclus du suivi de version
VISA_DORY_PRE.xlsx
#Dossier exclu du suivi de version
TEST/

View File

@ -15,3 +15,14 @@ NOTES :
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

Binary file not shown.

View File

@ -5,6 +5,7 @@
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
@ -130,8 +131,8 @@ class _Projet:
non_conformes = {},
nb_fichiers=0,
conformite="Non conforme",
projection="Pas de projection",
encodage="Pas d'encodage"):
projection="Inconnu",
encodage="Inconnu"):
self.nom = nom # - son nom - string
self.necessaires = necessaires
self.auxiliaires = auxiliaires
@ -173,13 +174,13 @@ class _Projet:
"""Récupère la projection des données géomatiques définie.
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:
df = open(self.necessaires["prj"].chemin)
chaine = df.readline()
df.close()
if "RGF_1993_Lambert_93" in chaine:
if "Lambert_93" in chaine:
self.projection = "LAMBERT93"
else:
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():
#il y a un dossier
pas_de_dossier = False
print(f"Dossier à Traiter trouvé : {a.name}")
racine = a
if pas_de_dossier:
print("Pas de dossier trouvé...\nFin de programme\n")
os.system("pause")
# fin du programme
exit()
else:
print(f"Dossier à Traiter trouvé : {a.name}")
racine = a
# --analyser le dossier
@ -389,6 +389,12 @@ os.system("pause")
# --produire le rapport
# 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 */
# --mettre en page la première feuille du classeur
# inserer une image
@ -396,21 +402,49 @@ os.system("pause")
# écrire les formules de colorations auto des colonnes
# 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
# /* Note : Chaque ligne de la feuille correspond à un projet */
# /* Utiliser la config fournie en Constante */
# écrire le nom du projet
cell = feuille["A"+str(ligne_courante)]
cell.value = nom_projet
print(cell.value)
# é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
# 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
cell = feuille["C"+str(ligne_courante)]
cell.value = projet.nb_fichiers
# écrire l'encodage
cell = feuille["D"+str(ligne_courante)]
cell.value = projet.encodage
# écrire la projection
cell = feuille["E"+str(ligne_courante)]
cell.value = projet.projection
# é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
# Fin Pour
# /* 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
# créer un dossier "Travail" et un dossier "Livraison"