Automator - créer un automatisme dossier pour les photos

jrs31

Membre confirmé
3 Juillet 2019
10
0
30
Bonjour à tous !

Voila, je bloque depuis quelques jours pour créer un automatisme sur certaine fichier. J'ai deja crée par le passé plusieurs automator simple comme "renommer les fichier" etc ...
Mais la ca devient compliqué pour moi ^^

Je suis photographe, donc je cite mon exemple :

Apres voir transféré les photos sur mon ordinateur ...
j'ai mon dossier "ORIGINAL Photos" (200 photos) sur mon bureau.

Avec Lightroom je fais mon travail etc...
Et j'exporte les photos sélectionné (40 photos) retouché dans un nouveau dossier " SELECTION Photos"

Je me retrouve avec deux dossiers :
" SELECTION Photos" (par exemple 50 photos)
"ORIGINAL Photos" (200 photos)

Donc à l'issue de cela j'aimerais garder dans le dossier original uniquement les photos que j'ai utilisé à l'exportation de light room (qui conserve exactement le meme nom de fichier"

Idéalement quand je n'ai pas beaucoup de photo j'ouvre les deux dossier en parallèle sur l'écran et je le fais manuellement en supprimant les photos non utilisé du fichier ORIGINAL ... or le problème est que quand j'ai 2000 photos c'est plus compliqué.


Connaissez vous la procedure pour créer un automatisme ?


Thank ;)
 
Bonjour,

Sans automator, avec un petit applescript.
Tu enregistres ce script comme application. A son lancement il te demande de choisir le dossier contenant les fichiers originaux à effacer, puis il te demande de choisir le dossier contenant les fichiers sélectionnés.
Il met dans la corbeille tous les fichiers trouvés ayant le même nom. Il ne te restera qu' a vider la corbeille (après vérification).
Si problème de mise en oeuvre n'hésite pas à demander.

Dis moi si ça te convient.

Bloc de code:
tell application "Finder"
    set source to choose folder with prompt "Sélectionnez le dossier contenant les fichiers Originaux à effacer"
    set cible to choose folder with prompt "Sélectionnez le dossier contenant la sélection"
   
    set les_fichiers to files of cible
    repeat with chaque_fichier in les_fichiers
       
        try
            set nom to name of chaque_fichier
            set efface to source & nom as string
           
            delete efface
           
        end try
    end repeat
end tell

tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
Bonjour,

Sans automator, avec un petit applescript.
Tu enregistres ce script comme application. A son lancement il te demande de choisir le dossier contenant les fichiers originaux à effacer, puis il te demande de choisir le dossier contenant les fichiers sélectionnés.
Il met dans la corbeille tous les fichiers trouvés ayant le même nom. Il ne te restera qu' a vider la corbeille (après vérification).
Si problème de mise en oeuvre n'hésite pas à demander.

Dis moi si ça te convient.

Bloc de code:
tell application "Finder"
    set source to choose folder with prompt "Sélectionnez le dossier contenant les fichiers Originaux à effacer"
    set cible to choose folder with prompt "Sélectionnez le dossier contenant la sélection"
  
    set les_fichiers to files of cible
    repeat with chaque_fichier in les_fichiers
      
        try
            set nom to name of chaque_fichier
            set efface to source & nom as string
          
            delete efface
          
        end try
    end repeat
end tell

tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell







Bonjour Zeltron54,

Merci pour ton aide ! J'ai lancé le script mais il ne supprime pas les originaux non sélectionné. Le fichier reste intact.

Est ce que le problème est pas du a au fait que mes photos dans le fichier "SELECTION" en .JPG et que dans le dossier ORIGNAUX les photos se terminent en .CR2 (fichier RAW)

??
 
Bonjour Zeltron54,

Merci pour ton aide ! J'ai lancé le script mais il ne supprime pas les originaux non sélectionné. Le fichier reste intact.

Est ce que le problème est pas du a au fait que mes photos dans le fichier "SELECTION" en .JPG et que dans le dossier ORIGNAUX les photos se terminent en .CR2 (fichier RAW)

??


Et par la meme occasion, j'en profite pour te demander est il possible de modifier le script pour que les photos se mettent dans un nouveau dossier sur le bureau et non pas dans la corbeille ?
 
Effectivement si le nom de l'original et de la sélection est différent ça ne peut pas fonctionner , le nom inclus l'extension....
Pas de problème pour mettre dans un dossier plutôt que dans la corbeille.
Question : le dossier dans lequel les fichiers seront déplacer sera , choisi au départ comme les 2 autres ou bien ????
Question 2 : les fichiers originaux ont tous et toujours la même extension ? cr2 ou il peut y avoir autre chose ?

Au vu de ces 2 réponses, je regarde pour adapter le script.
 
Effectivement si le nom de l'original et de la sélection est différent ça ne peut pas fonctionner , le nom inclus l'extension....
Pas de problème pour mettre dans un dossier plutôt que dans la corbeille.
Question : le dossier dans lequel les fichiers seront déplacer sera , choisi au départ comme les 2 autres ou bien ????
Question 2 : les fichiers originaux ont tous et toujours la même extension ? cr2 ou il peut y avoir autre chose ?

Au vu de ces 2 réponses, je regarde pour adapter le script.



Merci pour ta réactivité !

Réponse 1 : Oui je peux créer le dossier au depart sur le bureau du style "delete originaux"
Réponse 2 : Comme je shoot en RAW (.CR2) et parfois en JPG les fichiers non pas toujours la meme extension et aussi parfois .DNG pour les photos drone
 
Ok !
Je regarde cela dans l’après-midi.
 
Je te met le nouveau script.
Au lancement tu choisis les 3 dossiers, "Original", "Sélection", et "delete original"

Le script déplace les fichiers ".cr2" ou ".jpg" ou ".dng" du dossier "original" vers le dossier "delete original"

Dis moi si c'est bon.

Bloc de code:
tell application "Finder"
    set source to choose folder with prompt "Sélectionnez le dossier contenant les fichiers Originaux à effacer"
    set cible to choose folder with prompt "Sélectionnez le dossier contenant la sélection"
    set supprime to choose folder with prompt "Sélectionnez le dossier pour accueillir les fichiers à supprimer"
  
  
    set les_fichiers to files of cible
    repeat with chaque_fichier in les_fichiers
        set nom to name of chaque_fichier --récupère le nom du fichier
        set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
        set AppleScript's text item delimiters to {"."} --récupère la partie avant le dernier "."
        set elements to text items of nom
        set nomcourt to (items 1 thru -2 of elements) as string
        set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
      
      
        try
            set efface to source & nomcourt & ".cr2" as string
            move efface to supprime
        end try
        try
            set efface to source & nomcourt & ".jpg" as string
            move efface to supprime
        end try
        try
            set efface to source & nomcourt & ".dng" as string
            move efface to supprime
        end try
    end repeat
end tell

tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
Je te met le nouveau script.
Au lancement tu choisis les 3 dossiers, "Original", "Sélection", et "delete original"

Le script déplace les fichiers ".cr2" ou ".jpg" ou ".dng" du dossier "original" vers le dossier "delete original"

Dis moi si c'est bon.

Bloc de code:
tell application "Finder"
    set source to choose folder with prompt "Sélectionnez le dossier contenant les fichiers Originaux à effacer"
    set cible to choose folder with prompt "Sélectionnez le dossier contenant la sélection"
    set supprime to choose folder with prompt "Sélectionnez le dossier pour accueillir les fichiers à supprimer"
 
 
    set les_fichiers to files of cible
    repeat with chaque_fichier in les_fichiers
        set nom to name of chaque_fichier --récupère le nom du fichier
        set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
        set AppleScript's text item delimiters to {"."} --récupère la partie avant le dernier "."
        set elements to text items of nom
        set nomcourt to (items 1 thru -2 of elements) as string
        set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
    
    
        try
            set efface to source & nomcourt & ".cr2" as string
            move efface to supprime
        end try
        try
            set efface to source & nomcourt & ".jpg" as string
            move efface to supprime
        end try
        try
            set efface to source & nomcourt & ".dng" as string
            move efface to supprime
        end try
    end repeat
end tell

tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell


Excellant, Merci beaucoup ! Cela fonctionne à la perfection. TOPPPPP !
Je te met le nouveau script.
Au lancement tu choisis les 3 dossiers, "Original", "Sélection", et "delete original"

Le script déplace les fichiers ".cr2" ou ".jpg" ou ".dng" du dossier "original" vers le dossier "delete original"

Dis moi si c'est bon.

Bloc de code:
tell application "Finder"
    set source to choose folder with prompt "Sélectionnez le dossier contenant les fichiers Originaux à effacer"
    set cible to choose folder with prompt "Sélectionnez le dossier contenant la sélection"
    set supprime to choose folder with prompt "Sélectionnez le dossier pour accueillir les fichiers à supprimer"
 
 
    set les_fichiers to files of cible
    repeat with chaque_fichier in les_fichiers
        set nom to name of chaque_fichier --récupère le nom du fichier
        set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
        set AppleScript's text item delimiters to {"."} --récupère la partie avant le dernier "."
        set elements to text items of nom
        set nomcourt to (items 1 thru -2 of elements) as string
        set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
     
     
        try
            set efface to source & nomcourt & ".cr2" as string
            move efface to supprime
        end try
        try
            set efface to source & nomcourt & ".jpg" as string
            move efface to supprime
        end try
        try
            set efface to source & nomcourt & ".dng" as string
            move efface to supprime
        end try
    end repeat
end tell

tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell

Re, Alors j'ai essayé. Au debut tout fonctionne pour choisir les dossier sauf que quand le script se lance il ne déplace pas les orignaux ... Il est copie dans le dossier Delete. et au bout d'un certain temp il s'arrête "temps dépassé...."
 
Excellant, Merci beaucoup ! Cela fonctionne à la perfection. TOPPPPP !

Pardon, alors j'ai bien analysé les résultats.

PROBLEME 1 : Le script ne supprime pas les bon fichiers.

J'ai fais des tests
ORIGINAL 2000 photos
Selection 444 Photos

Il supprime les photos que je dois garder dans originaux

Probleme 2 : Au bout d'un certain nombres de photos le script s'arrête.
J'ai vider le dossier Delete mais le script ne continue pas
 
Dernière édition:
Je ne comprend pas.
le script prend les photos dans le dossier "sélection" une par une et s'il trouve une photo avec le même nom ayant une extension ".jpg" ou ".cr2" ou ".dng" déplace la photo de "original" vers "delete".
A le fin, aprés avoir analysé toutes les photos du dossier "sélection" il affiche un dialogue : "waouou ... Ca y est c'est fait !". as-tu eu ce dialogue ?

donc s'il s'arrête à 387 c'est qu'il y a 387 photos dans original qui correspondent à sélection.

Sinon précise exactement ce qui se passe, pour que je puisse analyser le problème.
 
Je viens de re-tester le script, pas de problème.

Mon dossier "original" contient 1500 photos avec diverses extensions(jpg,cr2,dng)
Mon dossier "selection" contient 500 photos, toutes avec extension jpg, et qui existent mais avec diverses extensions dans "original"
Mon dossier "delete" est vide

Après exécution du script
dossier "original" contient 1000 photos (il n'y a plus les 500 photos qui ont le même nom que celles dans "selection")
dossier "selection" contient toujours les 500 photos du départ
dossier "delete" contient les 500 photos qui ont le même nom que ceux du dossier "selection" avec les différentes extensions et qui ne sont plus dans le dossier "original".

Pour moi tout fonctionne.
Vérifie si tu choisis bien les bons dossiers au départ, dans l'ordre "original", "selection", "delete" c'est écrit en haut de la fenêtre de choix.
Sinon je ne vois pas ce qui peut foirer.
 
Après réflexion, la nuit porte conseil, il faut que les dossiers soit sur le disque du mac. (pas sur un serveur, ni sur un disque externe, ni sur clef usb , ni sur carte sd ...)
 
Ce n'est pas de l'automation, mais pourquoi ne pas supprimer les photos de LR en te basant sur les drapeaux/notes/couleurs que tu as mis ?

Ou alors depuis ton logiciel de tri (si tu en as un)
 
Après réflexion, la nuit porte conseil, il faut que les dossiers soit sur le disque du mac. (pas sur un serveur, ni sur un disque externe, ni sur clef usb , ni sur carte sd ...)

Yes j'ai compris ca cette nuit. Tout fonctionne parfaitement.
J'ai compris le problème, il fait très bien le tri sauf que :

Dans le fichier ORIGINAL, au lieu de déplacer les photos non utilisé dans DELETE il déplace les photos utilisé.

Donc à la fin j'ai juste a inverser le nom des dossier. Delete devient Original

Mais merci à toi ! C'est Super
 
Lorsque tu crées le dossier delete tu l'appelles "original des modifiés" :)

content pour toi !

bonne journée.
 
Dernière édition:
Hello
Lorsque tu crées le dossier delete tu l'appelles "original des modifiés" :)

content pour toi !

bonne journée.

Hello Zeltron :D
Le script que tu as gracieusement écrit pour m'aider a trier mes photos ne fonctionne plus depuis quelques semaines...
Je l'ai supprimer et re crée ... mais rien n'y fait ! Peut etre a cause de la MAJ du mac ?
Pour être sincère je ne m'y connais pas trop dans tout ces codes. Peut-tu m'aider à nouveau ?
Merci à toi
 
Bonsoir,
lorsque tu lances le script, que se passe t'il ?
Le choix des dossiers se fait ?
Il va au bout, mais pas de déplacement des fichiers ?
Il ne va pas au bout ? si oui y a t'il un message d'erreur ? qui dit quoi ?
 
Je lance le script et avec la fenêtre du Finder je sélectionne les 3 dossiers (original, sélection et delete)
Donc il va au bout, la fenêtre s'ouvre "c'est terminé" mais pas de déplacement de fichiers.

Est-ce peut être dû à l'extension des fichiers .NEF dans original et .JPG dans sélection ?
Car je ne crois pas que dans le script il y est l'extension .NEF
 
Effectivement le script s'occupe des fichiers: cr2, jpg, dng
je te rajoutes (vite fait) les NEF

Dès que j'ai un peu de temps je regarde pour faire en sorte qu'il prenne tous les fichiers quelque soit leur extension.
en attendant voilà le nouveau script pour les 4 extensions.

Bloc de code:
tell application "Finder"
    set source to choose folder with prompt "Sélectionnez le dossier contenant les fichiers Originaux à effacer"
    set cible to choose folder with prompt "Sélectionnez le dossier contenant la sélection"
    set supprime to choose folder with prompt "Sélectionnez le dossier pour accueillir les fichiers à supprimer"
    
    
    set les_fichiers to files of cible
    repeat with chaque_fichier in les_fichiers
        set nom to name of chaque_fichier --récupère le nom du fichier
        set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
        set AppleScript's text item delimiters to {"."} --récupère la partie avant le dernier "."
        set elements to text items of nom
        set nomcourt to (items 1 thru -2 of elements) as string
        set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
        
        
        try
            set efface to source & nomcourt & ".cr2" as string
            move efface to supprime
        end try
        try
            set efface to source & nomcourt & ".jpg" as string
            move efface to supprime
        end try
        try
            set efface to source & nomcourt & ".dng" as string
            move efface to supprime
        end try
        try
            set efface to source & nomcourt & ".NEF" as string
            move efface to supprime
        end try
    end repeat
end tell

tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell