el catala | Bonsoir,
J' ai tardé à répondre car j' ai reconstruit la macro pour la rendre plus lisible. En fait, depuis de nombreuses années, j' utilise une codification simpliste mais qui m' évite bien des erreurs de saisis. Pour chaque variable utilisé, je conserve uniquement les trois premières consonnes de chaque mot spécifiant cette variable. Je reconnais que cela peut-être perturbant surtout lorsque, comme dans le cas présent, j' ai besoin de votre aide. Voici donc le code remanié en espérant que cela vous permettra de trouver le bug.
Code :
- #!/usr/bin/env python3
- from uno import *
- from exiftool import *
- from datetime import datetime
- from fractions import *
- from sys import *
- from os import chdir
- # Sélectionner une photographie
- fichierselectionne = ' '
- def fenetreselection(event=None):
- ctx = XSCRIPTCONTEXT.getComponentContext()
- create = ctx.ServiceManager.createInstance
- filepicker = create("com.sun.star.ui.dialogs.FilePicker" )
- filepicker.execute()
- global fichierselectionne
- fichierselectionne = filepicker.Files[0]
- dimensionphoto = ' '; datephoto = ' ';heurephoto = ' '; exposition = ' '
- ouvertureobjectif = ' ';flash = ' '
- def donneesexif():
- # Dimension de la photo
- global dimensionphoto
- dimensionphoto = lrg, ' x ',htr
- # Extraction de la date et de l' heure de prise de vue
- date = datetime.strptime(dtcrt,"%Y:%m:%d %H:%M:%S" )
- global datephoto; global heurephoto
- datephoto = date.strftime('%d-%m-%Y')
- heurephoto = date.strftime('%H:%M:%S')
- # Temps d' exposition
- global exposition
- #x = int(1 / tmpxps)
- #exp = Fraction(1,x)
- #exp = Fraction(1,x)
- global ouvertureobjectif
- ouvertureobjectif = format(ouverture, '0.1f')
- # Flash actif
- global flash
- if flash == 16:
- flash = 'Inactif'
- else:
- flash = 'Actif'
- fenetreselecion() #Ouverture de la fenêtre de sélection d' un fichier
- # Recherche des balises du chemin du fichier
- balise = '/'
- positionbalise = fichierselectionne.rfind(balise,0,10)
- nombrebalise = fichierselectionne.count(balise)
- i = 0
- while i <= nombrebalise:
- positionbalise1 = fichierselectionne.rfind(balise)
- i = i + 1
- balise2 = '.'
- pstbls2 = fichierselectionne.rfind(balise2)
- # Chemin du fichier
- cheminfichier = balise2[positionbalise:positionbalise1 + 1]
- # Nom de la photo
- nomphoto = fichierselectionne[positionbalise1 + 1:positionbalise2]
- # Type d' extention du fichier
- extension = fichierselectionne[positionbalise2 + 1:]
- #Extraction du fabricant de l' appareil
- cheminfichierselectionne = fichierselectionne[positionbalise:]
- with ExifTool() as e:
- marque = e.get_tag('Make', positionbalise)
- # Sélection de la procédure en fonction du fabricant de l' appareil
- if marque == None:
- print ("Il n' y a pas de données exif pour cette photographie !" )
- marque = 'Inconnue'; modele = 'Inconnue'; datephoto = 'Inconnue'
- heurephoto = 'Inconnue'; dimensionphoto = 'Inconnue'; tempsexposition = 'Inconnue'
- focale = 'Inconnue'; longueurfocale = 'Inconnue'; iso = 'Inconnue'
- ouvertureobjectif = 'Inconnue'; luminosite = 'Inconnue'; flash = 'Inconnue'
- objectif = 'Inconnue'
- elif marque == 'Canon':
- with ExifTool() as e:
- modele = e.get_tag('Model', cheminfichierselectionne) # Modèle appareil
- datecreation = e.get_tag('DateTimeOriginal', cheminfichierselectionne)# Date et heure prise de vue
- largeur = e.get_tag('ImageWidth', cheminfichierselectionne) # Largeur photo
- hauteur = e.get_tag('ImageHeight', cheminfichierselectionne) # Hauteur photo
- tempsexposition = e.get_tag('ExposureTime', cheminfichierselectionne)# Temps d' exposition
- focale = e.get_tag('FNumber', cheminfichierselectionne) # Focale
- longfocale = e.get_tag('FocalLength', cheminfichierselectionne) # Longueur de focale
- iso = e.get_tag('Iso', cheminfichierselectionne) # Sensibilité
- ouverture = e.get_tag('ApertureValue', cheminfichierselectionne)# Ouverture objectif
- luminosite = e.get_tag('LightValue', cheminfichierselectionne) # Luminosité
- flash = e.get_tag('Flash', cheminfichierselectionne) # Position flash
- objectif = e.get_tag('lenstype', cheminfichierselectionne) # Objectif utilisé
- donneesexif()
- elif marque == 'FUJIFILM':
- with ExifTool() as e:
- modele = e.get_tag('Model', cheminfichierselectionne) # Modèle appareil
- datecreation = e.get_tag('DateTimeOriginal', cheminfichierselectionne)# Date et heure prise de vue
- largeur = e.get_tag('ImageWidth', cheminfichierselectionne) # Largeur photo
- hauteur = e.get_tag('ImageHeight', cheminfichierselectionne) # Hauteur photo
- tempsexposition = e.get_tag('ExposureTime', cheminfichierselectionne)# Temps d' exposition
- focale = e.get_tag('FNumber', cheminfichierselectionne) # Focale
- longfocale = e.get_tag('FocalLength', cheminfichierselectionne) # Longueur de focale
- iso = e.get_tag('Iso', cheminfichierselectionne) # Sensibilité
- ouverture = e.get_tag('ApertureValue', cheminfichierselectionne)# Ouverture objectif
- luminosite = e.get_tag('LightValue', cheminfichierselectionne) # Luminosité
- flash = e.get_tag('Flash', cheminfichierselectionne) # Position flash
- objectif = e.get_tag('lenstype', cheminfichierselectionne) # Objectif utilisé
- donneesexif()
- else:
- with ExifTool() as e:
- modele = e.get_tag('Model', cheminfichierselectionne) # Modèle appareil
- datecreation = e.get_tag('DateTimeOriginal', cheminfichierselectionne)# Date et heure prise de vue
- largeur = e.get_tag('ImageWidth', cheminfichierselectionne) # Largeur photo
- hauteur = e.get_tag('ImageHeight', cheminfichierselectionne) # Hauteur photo
- tempsexposition = e.get_tag('ExposureTime', cheminfichierselectionne)# Temps d' exposition
- focale = e.get_tag('FNumber', cheminfichierselectionne) # Focale
- longfocale = e.get_tag('FocalLength', cheminfichierselectionne) # Longueur de focale
- iso = e.get_tag('Iso', cheminfichierselectionne) # Sensibilité
- ouverture = e.get_tag('ApertureValue', cheminfichierselectionne)# Ouverture objectif
- luminosite = e.get_tag('LightValue', cheminfichierselectionne) # Luminosité
- flash = e.get_tag('Flash', cheminfichierselectionne) # Position flash
- objectif = e.get_tag('lenstype', cheminfichierselectionne) # Objectif utilisé
- donneesexif()
- # Creation du fichier de sauvegarde
- chdir('/home/elfouste/Documents/Python/MacroPython/Tst_Fch')
- fch = 'FchDn.txt'
- with open('FchDn.txt', 'w') as fch:
- fch.write(cheminfichier)
- fch.write(nomphoto)
- fch.write(extention)
- fch.write(datephoto)
- fch.write(heurephoto)
- fch.write(marque)
- fch.write(modele)
- fch.write(str(dimensionphoto))
- fch.write(str(tempsexposition))
- fch.write(str(focale))
- fch.write(str(longueurfocale))
- fch.write(str(iso))
- fch.write(str(objectif))
- fch.write(str(ouvertureobjectif))
- fch.write(str(luminosite))
- fch.write(str(flash))
- #sys.exit()
|
Par avance, merci de votre aide.
Cordialement |