Ajout création dossier et modif modele
This commit is contained in:
parent
eae1be7470
commit
dde2b39958
@ -24,5 +24,5 @@ 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'
|
||||
- Une fois terminé, un fichier de rapport 'VISA_DORY_PRE.xlsx' est créé
|
||||
- L'arborescence des dossiers est aussi créé (EN COURS: les dossiers ne sont pas encore créés)
|
||||
Binary file not shown.
@ -4,28 +4,11 @@
|
||||
|
||||
|
||||
|
||||
import os # getcwd(),
|
||||
import os # getcwd(), walk()
|
||||
import openpyxl # gestion et manipulation de fichier Open XML
|
||||
import re # RegEx
|
||||
|
||||
|
||||
## 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
|
||||
|
||||
|
||||
|
||||
# - une liste des extensions nécessaires
|
||||
NECESSAIRES = ["cpg", "dbf", "prj", "shp", "shx"]
|
||||
|
||||
# - une liste des extentions auxiliaires
|
||||
AUXILIAIRES = ["qix", "qmd", "qml"]
|
||||
|
||||
# - la configuration de la feuille Excel
|
||||
CONFIG = {"NOM" : "A5",
|
||||
"TYPE" : "B5",
|
||||
"NB_FICHIERS" : "C5",
|
||||
"ENCODAGE" : "D5",
|
||||
"PROJECTION" : "E5",
|
||||
"VALIDITE" : "F5"}
|
||||
|
||||
|
||||
|
||||
# REPRESENTATION DES DONNEES
|
||||
@ -180,7 +163,12 @@ class _Projet:
|
||||
df = open(self.necessaires["prj"].chemin)
|
||||
chaine = df.readline()
|
||||
df.close()
|
||||
if "Lambert_93" in chaine:
|
||||
#cherche le motif : "Ligne qui commence par PROJCS["
|
||||
# puis suivi de caracteres
|
||||
#puis suivi de Lambert_93"
|
||||
motif = re.findall('^PROJCS[[]".*Lambert_93"', chaine)
|
||||
print("motif = ", motif)
|
||||
if motif:
|
||||
self.projection = "LAMBERT93"
|
||||
else:
|
||||
print(projet.nom, " : pas de PRJ trouvé --> pas de projection définie")
|
||||
@ -194,7 +182,6 @@ class _Projet:
|
||||
if "cpg" in self.necessaires:
|
||||
df = open(self.necessaires["cpg"].chemin)
|
||||
chaine = df.readline()
|
||||
#print("encod lu : ", chaine)
|
||||
df.close()
|
||||
if "UTF-8" in chaine:
|
||||
self.encodage = "UTF8"
|
||||
@ -295,14 +282,14 @@ print("Racine : ".center(18), racine)
|
||||
pas_de_dossier = True
|
||||
|
||||
for a in os.scandir():
|
||||
if a.is_dir():
|
||||
#si 'a' est un dossier et n'est pas un dossier de la liste ci dessous
|
||||
if a.is_dir() and a.name not in ["Travail", "Livraison", ".git"]:
|
||||
#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()
|
||||
|
||||
@ -334,7 +321,7 @@ for dossier_courant, list_sousdossiers, list_fichiers in os.walk(racine):
|
||||
#TEST affichage de la liste de fichier
|
||||
|
||||
# initialiser un dictionnaire de _Projets avec comme clé leurs noms respectifs
|
||||
print("Init Dico\n")
|
||||
print("Init Dictionnaire des Projets\n")
|
||||
dico = {}
|
||||
# Pour Chaque fichier de la liste Faire
|
||||
for fichier_courant in liste:
|
||||
@ -353,9 +340,6 @@ for fichier_courant in liste:
|
||||
# ajouter le nom comme clé dans le dictionnaire
|
||||
# associer le projet à cette clé
|
||||
dico[projet.nom] = projet
|
||||
|
||||
#test contenu du dico
|
||||
|
||||
# Fin Si
|
||||
# cataloguer le fichier dans le projet concerné
|
||||
projet.cataloguer(fichier_courant)
|
||||
@ -384,23 +368,20 @@ for projet in dico.values():
|
||||
|
||||
# /* Ici le dictionnaire des _Projets doit être correctement remplie */
|
||||
|
||||
|
||||
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
|
||||
# écrire les nom des colonnes
|
||||
# écrire les formules de colorations auto des colonnes
|
||||
|
||||
cell = feuille["A2"]
|
||||
cell.value = "Dossier : "+ racine.name
|
||||
# Pour chaque projet du dictionnaire Faire
|
||||
ligne_courante = 4
|
||||
for nom_projet, projet in dico.items():
|
||||
@ -448,13 +429,38 @@ print("ligne_courante = ", ligne_courante )
|
||||
|
||||
# --produire le dossier de mise à disposition
|
||||
# créer un dossier "Travail" et un dossier "Livraison"
|
||||
try:
|
||||
os.mkdir("Travail")
|
||||
except FileExistsError as erreur:
|
||||
print(erreur)
|
||||
#os.mkdir("Livraison")
|
||||
# --créer l'arborescence du dossier "Travail"
|
||||
# le dossier Travail devient le working directory
|
||||
# créer un dossier "00-Cadastre"
|
||||
try:
|
||||
os.mkdir("Travail\\00-Cadastre")
|
||||
except FileExistsError as erreur:
|
||||
print(erreur)
|
||||
# créer un dossier "01-Donnees_Valides"
|
||||
try:
|
||||
os.mkdir("Travail\\01-Donnees_Valides")
|
||||
except FileExistsError as erreur:
|
||||
print(erreur)
|
||||
# créer un dossier "02-Donnees_Invalides
|
||||
try:
|
||||
os.mkdir("Travail\\02-Donnees_Invalides")
|
||||
except FileExistsError as erreur:
|
||||
print(erreur)
|
||||
# créer un dossier "03-Production"
|
||||
try:
|
||||
os.mkdir("Travail\\03-Production")
|
||||
except FileExistsError as erreur:
|
||||
print(erreur)
|
||||
# créer un dossier "04-Verif_Geometrie"
|
||||
try:
|
||||
os.mkdir("Travail\\04-Verif_Geometrie")
|
||||
except FileExistsError as erreur:
|
||||
print(erreur)
|
||||
# --peupler le dossier "Travail"
|
||||
# Pour Chaque projet du dictionnaire Faire
|
||||
# copier les fichiers des projets conforme dans le dossier "01"
|
||||
@ -464,12 +470,3 @@ print("ligne_courante = ", ligne_courante )
|
||||
# /* Ici les dossiers doivent être correctement produit et remplie */
|
||||
|
||||
# ARRET DU PROGRAMME
|
||||
|
||||
|
||||
|
||||
# /* TODO Controler qu'il y a bien les 5 necessaires par projet sinon FAIL
|
||||
# --> a faire dans le controle de conformité de chaque projet */
|
||||
|
||||
# /* TODO S'assurer que les GPKG et autres non conformes peuplent correctement
|
||||
# les infos dans les projets --> géré si l'initialisation des
|
||||
# projets est correctement fait */
|
||||
|
||||
Loading…
Reference in New Issue
Block a user