Résolu récupérer des photos dans un dossier rapidement

IVIedia

Membre actif
8 Février 2010
214
2
Bonjour,

je cherche le moyen de récupérer dans un dossier des photos "dynamiquement" depuis une liste texte ou .csv

J'ai un dossier avec 10 000 photos et un fichier texte avec 500 références de photos
les nom références corresponds au photos

exemple

0001 -> 0001.jpg

est ce possible de faire ça?

le but est bien entendu de pas faire un par un :)

Merci
 
Dernière édition:

zeltron54

Membre expert
Club MacG
29 Mars 2008
2 658
418
Lorraine
Bonjour,

Avec un petit applescript !
le fichier texte contient ' il le nom exact de chaque fichier y compris l'extension ?
si l'extension du fichier n'est pas renseigner, tous les fichiers sont t'ils des ".jpg"

En fonction de ça on peut envisager un petit script.
 

IVIedia

Membre actif
8 Février 2010
214
2
Bonsoir et merci pour votre réponse

oui la référence c'est le nom de l'image est ce sont tous des .jpg
oui j'ai 2 fois la référence une fois avec .jpg une fois sans dans mon fichier ...
on peux prendre la colonne qu'on veux

merci
 

zeltron54

Membre expert
Club MacG
29 Mars 2008
2 658
418
Lorraine
Il faut donc commencer par avoir un fichier texte, séparateur tabulation, donc avec un nom de fichier complet avec son extension, un nom par ligne.style:
0001.jpg
0002.jpg
0003.jpg
Ensuite créer un dossier vide pour la réception des photos dupliquées.
- Ouvrir "éditeur de script"
-Copier - Coller le script ci dessous
-Au lancement le script te demande de localiser le dossier contenant les photos, puis localiser le dossier cible pour réception des copie, puis de choisir le fichier texte. Il suffit de patienter jusqu' a ce qu'il te prévienne qu'il a terminé.
C'est tout !

Bloc de code:
tell application "Finder"
    set cheminsource to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à copier"
    set chemincible to choose folder with prompt "Sélectionnez le dossier cible"
    set laliste to choose file with prompt "Sélectionnez le fichier liste"
    my inspecter(cheminsource, chemincible, laliste)
end tell

on inspecter(source, cible, liste1)
   
    set dossiersource to source as string
    set dossiercible to cible as string
   
   
    open for access liste1
    read liste1
    set tout_le_fichier to the result
    close access liste1
    set AppleScript's text item delimiters to (ASCII character 13)
    set toutes_les_lignes to (every text item of tout_le_fichier) as list
    set AppleScript's text item delimiters to ""
    set tout_le_fichier to ""
   
   
    repeat with une_ligne in toutes_les_lignes
        -- set CheminImage to dossiersource & une_ligne & ".jpg" -- si extension pas dans fichier texte et = .jpg
        set CheminImage to dossiersource & une_ligne
       
        tell application "Finder"
           
            duplicate CheminImage to dossiercible
           
        end tell
    end repeat
end inspecter

tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
  • J’aime
Réactions: subsole et IVIedia

IVIedia

Membre actif
8 Février 2010
214
2
Cool! ça fonctionne très bien :)

c'est la première fois que j'ai fait applescript, l'extension c'est bien applescript n'est ce pas?

img.applescript

Merci
 

zeltron54

Membre expert
Club MacG
29 Mars 2008
2 658
418
Lorraine
Cool! ça fonctionne très bien :)

c'est la première fois que j'ai fait applescript, l'extension c'est bien applescript n'est ce pas?

img.applescript

De quelle extension tu parles ?

Le script est à coller dans l'éditeur de script puis si tu veux le conserver , enregistrer sous "Mon script" l'extension par défaut sera mise par l'éditeur de script et sera " .scpt ".

Sinon explique ce que tu veux dire ?
 

IVIedia

Membre actif
8 Février 2010
214
2
J'aimerais savoir si avec un applescript on peux vérifier si une image existe bien dans un fichier excel?

J'ai un fichier excel dans la colonne A les noms des images et j'ai un répertoire image et le script doit vérifier et ajouter a la colonne B dans le même excel vrai pour existe et non pour fichier qui ne ce trouve pas ...

avec excel et imacros on sais faire ça, mais j'essaye de voir si on peux avoir un apple script et voir si c'est plus simple ...

Merci
 

zeltron54

Membre expert
Club MacG
29 Mars 2008
2 658
418
Lorraine
J'aimerais savoir si avec un applescript on peux vérifier si une image existe bien dans un fichier excel?

J'ai un fichier excel dans la colonne A les noms des images et j'ai un répertoire image et le script doit vérifier et ajouter a la colonne B dans le même excel vrai pour existe et non pour fichier qui ne ce trouve pas ...

avec excel et imacros on sais faire ça, mais j'essaye de voir si on peux avoir un apple script et voir si c'est plus simple ...

Merci

On pourrai faire un script, mais il me parait plus simple de faire une macro excel !

Par contre on peut faire un script qui te crée un fichier texte avec la liste des fichiers contenus dans un dossier, soit tous les fichiers soit uniquement les fichiers avec une extension .jpg ou .mp3 etc.
Ce fichier pourra alors être importé dans excel.
 

IVIedia

Membre actif
8 Février 2010
214
2
Salut,

Si j'ai bien compris on a notre fichier excel avec nos 10 000 lignes et le dossier images et a la finalité on va crée un fichier texte avec les références présent dans le dossier images

c'est bien ça?

merci
 

zeltron54

Membre expert
Club MacG
29 Mars 2008
2 658
418
Lorraine
On lance le script qui scrute ton dossier et crée un petit fichier texte avec la liste de tous les fichiers contenus dans le dossier analysé.
Si ça te conviens je te prépare ce script !
 

IVIedia

Membre actif
8 Février 2010
214
2
Si ça vous dérange pas j'aimerais bien ...
ensuite je récupère cet liste et je peux faire correspondre au fichier excel de base :)

edit

ps: en faite ça reviens pas a copier tout le dossier et coller le résultat dans un fichier texte?


merci
 

zeltron54

Membre expert
Club MacG
29 Mars 2008
2 658
418
Lorraine
Un premier script qui liste tous le fichiers y compris dans les sous dossiers

Bloc de code:
-- CRÉATION FICHIER LISTING  D'UN DOSSIER

set votreChoix to choose folder

set listeNoms to ""

tell application "Finder"
    set liste_Fichiers to every file of entire contents of folder (votreChoix as alias)
   
    if (count liste_Fichiers) is not 0 then -- Si trouve aucun .mp3, passe (évite de créer un fichier vide)
       
        repeat with i from 1 to (the count items of liste_Fichiers)
            -- \\\ LISTE DES NOMS DE FICHIERS  SEULEMENT /// --
            set nom to name of item i of text items of liste_Fichiers as text
            set listeNoms to listeNoms & nom & return
        end repeat
       
        -- Création du fichier si il n'existe pas dans le dossier sélectionné
        -- en premier dans le dossier (le nom commence par le caractère espace)
        set chemin_Fichier to (votreChoix as text) & " Fichiers.txt" as string
        try
            set chemin_Fichier to open for access chemin_Fichier with write permission
            set eof chemin_Fichier to 0 -- Pour éffacer le contenu du fichier
            write listeNoms starting at eof to chemin_Fichier
            close access chemin_Fichier
        on error
            close access chemin_Fichier
        end try
       
    end if
end tell
tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell

Un deuxième légèrement modifié qui liste uniquement les fichiers .JPG

Bloc de code:
-- CRÉATION FICHIER LISTING .jpg D'UN DOSSIER

set votreChoix to choose folder

set listeNoms to ""

tell application "Finder"
    set liste_Fichiers to every file of entire contents of folder (votreChoix as alias) whose name ends with ".jpg"
   
    if (count liste_Fichiers) is not 0 then -- Si trouve aucun .mp3, passe (évite de créer un fichier vide)
       
        repeat with i from 1 to (the count items of liste_Fichiers)
            -- \\\ LISTE DES NOMS DE FICHIERS .jpg SEULEMENT /// --
            set nom to name of item i of text items of liste_Fichiers as text
            set listeNoms to listeNoms & nom & return
        end repeat
       
        -- Création du fichier si il n'existe pas dans le dossier sélectionné
        -- en premier dans le dossier (le nom commence par le caractère espace)
        set chemin_Fichier to (votreChoix as text) & " Fichiers jpg.txt" as string
        try
            set chemin_Fichier to open for access chemin_Fichier with write permission
            set eof chemin_Fichier to 0 -- Pour éffacer le contenu du fichier
            write listeNoms starting at eof to chemin_Fichier
            close access chemin_Fichier
        on error
            close access chemin_Fichier
        end try
       
    end if
end tell
tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell