Renommer des ficher depuis une liste excel

Imperatrice Sissi

Membre confirmé
22 Février 2014
76
1
Bonjour,

Je cherche un soft qui puisse me permettre de renommer un lot de fichiers avec une liste excel.

Ces fichiers sont tous dans le même dossier. La "nouvelle" liste de noms est prête mais après comment faire ?

Sur PC il y a ant rename mais sur mac je ne trouve rien.

Il y a certes beaucoup de logiciels qui permettes de modifier le nom mais ce n'est pas ce que je recherche (à mois qu'ils n'offrent aussi ce service). Moi je cherche juste à échanger les noms. Je les ai déjà modifiés.

Si je pouvais éviter Automator tant mieux. Sinon, ben il faudra bien s'y coller mais il existe surement une application facile pour faire ça.


Merci de votre aide
 
Comment ?

Je ne trouve pas du tout cette fonction. Je suis sur OSX 10.11.6
 
Bonjour,
Peut être avec un applescript

Mais il faudrait savoir exactement ce qu'il y a dans le fichier excel, ancien nom, nouveau nom, dans quelles colonne et ligne etc...
 
Dernière édition:
S'il s'agit d'une liste dans un fichier EXCEL contenant des noms de fichiers EXCEL, une petite macro suffira.
 
Bon finalement je l'ai fait à la main mais ça m'intéresse de savoir comment faire. La forme sur excel importe peu.

Je peut avoir une seule liste de nouveaux nom à appliquer sur les fichier dans leur ordre d'apparition (selon qu'ils sont classés par date, ordre alphabétique, etc) ou avoir deux liste ; une avec les anciens noms et une avec les nouveaux.

C'est que Excel permet de transformer les noms de fichier avec beaucoup d'efficacité alors ce serait une bonne chose d'avoir cette solution sous le coude.
 
Je veux être certain d'avoir bien compris.
1•Soit des fichiers reconnus par EXCEL comme pouvant être ouverts par EXCEL, ou, plus simplement, pouvant être ou devenir des classeurs EXCEL.
2•Ces fichiers doivent être renommés selon les termes d'une ou deux listes selon la règle :
nom_ancien_fichier_N -> Nom_nouveau_fichier_N.

Le principe suivant peut-être appliqué :

À l'aide d'une macro on exécute (en boucle) l'ouverture d'un fichier de la liste entrante (anciens noms) et on l'enregistre en utilisant le nom correspondant de la liste sortante (nouveau nom).
La liste entrante peut être obtenue par une instruction de la macro.
La liste sortante peut-être aussi obtenue séparément par une autre macro s'il existe une " logique " d'appellation des fichiers.
 
Bonjour
Le menu fichier du Finder fait ça depuis Yosemite (Mac OS 10.10)

Comment ?

Je ne trouve pas du tout cette fonction. Je suis sur OSX 10.11.6
Sélectionne plusieurs fichiers dans le même répertoire, puis fait renommer. Ensuite, choisi ce que tu veux faire. Il est possible de rajouter un préfixe, de remplacer du texte du nom, etc ...

Sinon en se servant du fichier excel au format csv, ça doit être faisable en 2-3 commandes via le terminal.
 
Peut-être Impératrice Sissi trouve-t-elle (à raison ?) que les possibilités de renommer par la fonction Renommer du Finder sont un peu légères, et souhaite-elle quelque chose de plus général et de plus souple.
Il existe aussi de nombreux logiciels capable de répondre au problème posé, sans que l'intégrité des fichiers en soit affecté. Gratuits ou payants.

Je suggère à Impératrice Sissi de faire une recherche avec le terme logiciel de renommage mac.
 
Dernière édition:
Peut-être Impératrice Sissi trouve-t-elle (à raison ?) que les possibilités de renommer par la fonc
Le renommage de fichiers par le finder est assez limité, mais quelques fois c'est largement suffisant. Cela m'a simplifié la vie plus d'une fois ^^
 
Tout dépend de ce qu'on fait. Personnellement je l'utilise très rarement.
J'utilise une fonction de GraphicConverter qui vise le renommage des fichiers photos en particulier, et de n'importe quels fichiers en général.
Il existe des logiciels gratuits qui font la même chose.
 
Oui ce que je cherche c'est un logiciel qui renomme à partir d'une liste. J'en avait un sur PC. Sur Mac je n'en connais pas et j'aimerais éviter d'avoir à en télécharger plusieurs pour les essayer puis les désinstaller quand ils n'ont pas la fonction désirée.

C'est d'ailleurs ce que j'ai fait avant de venir ici pour directement poser la question.

Si vous connaissez un tel logiciel je suis preneur.

En ce qui concerne le renommage par "clic droit" je le connais mais il ne permet pas du tout le renommage par liste. Donc...

Je ne veux pas jouer les râleurs mais je trouve un peu navrant tous ces logiciels qui permettent de modifier les noms de fichiers avec plus ou moins de bonheur alors que n'importe quel tableur (comme excel par exemple) les surpassent tous.

Ce serait un tel gain d'avoir juste une application pour changer les nom à partir d'une liste. Ou au moins de le permettre aussi.

Dommage qu'il y ait pléthore de logiciels sans que cette fonction si efficace soit implémentée. Ce serait, selon moi, 10 fois plus efficace et 10 fois plus facile à programmer. Enfin qui peut le plus ne peu pas forcement le moins :-/

Il existe forcement un programmeur qui à eu la généreuse intention d'offrir cette idée à la communauté. Je survivrais sans mais j'aurais eu plaisir à avoir une telle application.

Si quelqu'un ayant cela en "magasin" passe par là qu'il n'hésite pas (même 10 ans après) car il est toujours bon d'avoir ces petits utilitaires qui vous facilite la vie.
 
C’est sur que pour certaines actions, c’est insuffisant.

Perso j’ai un script pour renommer mes photos en se basant sur la date de la photo (et non la date du fichier).
Bien pratique pour s’y retrouver.

Mais si c’est juste pour ajouter un préfixe/suffixe à des documents administratifs, c’est souvent suffisant (et bien mieux que Windows)


Peux-tu nous donner un exemple du contenu de ton fichier Excel ?
 
Il y a une commande super simple à mettre en place.
Depuis excel :
dans la première colonne, tu mets le nom d'origine
dans la seconde colonne, tu mets le nouveau nom.

Tu exportes ton classeur dans un fichier texte tabulé (une tabulation entre les 2 colonnes)
tu sauves ton fichier en l'appelant list.txt (par exemple)
Tu mets ce fichier au même endroit que les fichiers à renomer
Tu lances le terminal et depuis celui-ci, tu te rends dans le dossier en question.
Pour finir, tu tapes cette commande que tu exécutes :
Bloc de code:
xargs -a list.txt -n 2 mv

JE TE CONSEILLE DE FAIRE DES ESSAIS AVANT DANS UN DOSSIER SANS IMPORTANCE !!
 
Intéressant comme méthode. j'essaierais ça tout à l'heure (là je suis occupé).

En ce qui concerne le changement de nom c'est parfois utile de mettre une catégorie en premier et de mettre une date en inversé (année, moi, jour) pour pouvoir faire un classement chronologique.

Par exemple :
Anciens noms =>
Photo - 4 février 2016 - vacance
Photo - 7 juillet 2016 - pro

Deviens
Nouveaux noms =>
Photo Vacance - 2016-02-04
Photo Pro - 2016-07-07​

Avec excel c'est faisable en automatique et donc ; très utile si on a plusieurs centaines de fichiers.

Il serait aussi intéressant de pouvoir modifier des tags depuis une liste.
Par exemple retirer le mot vacance et pro pour les mettre dans des tag de catégories.

Si vous avez aussi des solution pour ça je suis preneurs. Particulièrement pour mes fichiers images et audios qui peuvent être plusieurs milliers et multi-catégoriels si je puis m'exprimer ainsi.
 
Depuis le fichier excel, c'est faisable avec une macro, mais la macro doit être différente en fonction de la version d'excel: ( 2011 et 2016 n'utilise pas le même format pour les chemins de fichiers !) donc il faut préciser la version d'excel et donner les colonnes et lignes utilisées pour les noms.

Sinon, avec un fichier texte (qui peut être issu d'excel) avec par ligne , le nom actuel avec l'extension, une tabulation, le nouveau nom avec l'extension, comme demandé par "daffyb" et un script applescript (je ne connait pas bien les commandes terminal).

Au lancement le script te demande de choisir le dossier contenant les fichiers à renommer, puis de choisir un dossier vide dans lequel il mettra les fichiers renommés, puis de choisir le fichier de la liste.
Tu peux essayer ce petit script et donner ton retour.

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 AppleScript's text item delimiters to (ASCII character 9)
        set part1 to (every text item of une_ligne) as list
        set lefichier to item 1 of part1
        set lenew to item 2 of part1
        set AppleScript's text item delimiters to ""
       
        set CheminImage to dossiersource & lefichier --& ".jpg" -- si extension pas dans fichier texte et = .jpg
        set newchemin to dossiercible & lefichier --& ".jpg" -- si extension pas dans fichier texte et = .jpg
       
        tell application "Finder"
            -- duplique et renomme
            duplicate CheminImage to dossiercible
            set anciennom to (a reference to file newchemin)
            set name of anciennom to lenew --& ".jpg" -- si extension pas dans fichier texte et = .jpg
        end tell
    end repeat
end inspecter

tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
Intéressant comme méthode. j'essaierais ça tout à l'heure (là je suis occupé).

En ce qui concerne le changement de nom c'est parfois utile de mettre une catégorie en premier et de mettre une date en inversé (année, moi, jour) pour pouvoir faire un classement chronologique.

Par exemple :
Anciens noms =>
Photo - 4 février 2016 - vacance
Photo - 7 juillet 2016 - pro

Deviens
Nouveaux noms =>
Photo Vacance - 2016-02-04
Photo Pro - 2016-07-07​

Avec excel c'est faisable en automatique et donc ; très utile si on a plusieurs centaines de fichiers.

Il serait aussi intéressant de pouvoir modifier des tags depuis une liste.
Par exemple retirer le mot vacance et pro pour les mettre dans des tag de catégories.

Si vous avez aussi des solution pour ça je suis preneurs. Particulièrement pour mes fichiers images et audios qui peuvent être plusieurs milliers et multi-catégoriels si je puis m'exprimer ainsi.

C'est exactement ce qu'il est possible de faire avec GraphicConverter, et c'est à peu près ce que je fais aussi.
La seule difficulté est que GraphicConverter est payant. Toutefois il est possible de télécharger et d'essayer ce logiciel qui sait aussi faire beaucoup de chose avec les photos.
L'utilisation est simple. Il suffit de placer tous les fichiers à renommer dans un dossier, de paramétrer le changement de nom, et d'activer le processus.
 
Dans mon script j'ai oublié de contrôler si le fichier de la liste existe...
Je remet le script modifié.

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 AppleScript's text item delimiters to (ASCII character 9)
        set part1 to (every text item of une_ligne) as list
        set lefichier to item 1 of part1
        set lenew to item 2 of part1
        set AppleScript's text item delimiters to ""
       
        set CheminImage to dossiersource & lefichier --& ".jpg" -- si extension pas dans fichier texte et = .jpg
        set newchemin to dossiercible & lefichier --& ".jpg" -- si extension pas dans fichier texte et = .jpg
        set controle to CheminImage as string
       
        tell application "Finder"
            if exists controle then
                -- duplique et renomme
                duplicate CheminImage to dossiercible
                set anciennom to (a reference to file newchemin)
                set name of anciennom to lenew --& ".jpg" -- si extension pas dans fichier texte et = .jpg
            else
                display dialog "le fichier " & controle & " n'existe pas "
            end if
        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: iluro_64
Il y a une commande super simple à mettre en place.
Depuis excel :
dans la première colonne, tu mets le nom d'origine
dans la seconde colonne, tu mets le nouveau nom.

Tu exportes ton classeur dans un fichier texte tabulé (une tabulation entre les 2 colonnes)
tu sauves ton fichier en l'appelant list.txt (par exemple)
Tu mets ce fichier au même endroit que les fichiers à renomer
Tu lances le terminal et depuis celui-ci, tu te rends dans le dossier en question.
Pour finir, tu tapes cette commande que tu exécutes :
Bloc de code:
xargs -a list.txt -n 2 mv

JE TE CONSEILLE DE FAIRE DES ESSAIS AVANT DANS UN DOSSIER SANS IMPORTANCE !!

Bonjour,

Je déterre cette enfilade car je tente aussi de renommer les fichiers d'un dossier à partir d'une liste.

En saisissant la commande de @daffyb
Bloc de code:
xargs -a list.txt -n 2 mv
le terminal me renvoie un message d'erreur, comme quoi -a n'est pas une option légale.

Savez-vous quelle est la commande qu'il faudrait saisir dans le terminal?

Merci !
 
Dernière édition: