Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forums MacBidouille _ Logiciels Apple _ Opération automatisée sur noms de fichiers

Écrit par : losto 30 Mar 2024, 09:37

Bonjour.

Soit un dossier avec des fichiers dont le nom comporte toujours le signe – (tiret haut long = cmd + maj + tiret normal) séparant ce nom en deux parties.

Je souhaite, pour des opérations ultérieures, supprimer ce tiret long et ce qui se trouve après, et cela bien entendu par lot.

Quelle app utiliseriez-vous pour cela ?

Écrit par : ades 30 Mar 2024, 11:00

y-en a plein sur l'appstore, en cherchant "rename" doivent toutes utiliser les mêmes commandes, juste l'interface qui change donc choisir d'après les images–exemples

Écrit par : Vincent 30 Mar 2024, 11:35

.

Écrit par : ch21 30 Mar 2024, 12:54

GraphicConverter

Écrit par : macmacmac 30 Mar 2024, 16:14

Hello,
Pour quelque chose d'aussi simple, le renommer du Finder fait largement l'affaire, ça travaille très vite et sans logiciels supplémentaire.
Seule contrainte: devoir sélectionner les fichiers et ne pas devoir renommer un dossier également qui contient le signe.
Si la hiérarchie est complexe, j'utilise la fonction rechercher qui ne va afficher dans la fenêtre que les fichiers concernés.
C'est à faire à la main comparé à un logiciel, mais c'est tellement vite fait…

Écrit par : ades 30 Mar 2024, 17:37

super info … ou leçon wink.gif

on devrait toujours (bien et entièrement) lire les menus de base rolleyes.gif et … tester les fonctions !

Écrit par : losto 30 Mar 2024, 19:50

J'ai plus que vaguement l'impression que je n'ai pas présenté le problème correctement.

Voici un extrait du dossier contenant près de 80 000 titres.

1st Revolution Orchestra – The show is over now.mp3
2 Minutos – Ángela.mp3
2 Minutos – Corazón.mp3
2 Minutos – Efedrina.mp3
2 Minutos – El asador.mp3
2 Minutos – Lejos estoy.mp3
2 Minutos – Melodia de barrío.mp3
2 Minutos – Naif.mp3
2 Minutos – Navaja.mp3
2 Minutos – Vago.mp3
2 Minutos – Vomito bar.mp3
2 Minutos – Ya no sos igual.mp3
2+2's – I'm mad.mp3
3 – See Emily play.mp3
3 Balls Of Fire – God only knows.mp3
3 Hombres – Arthur Lee e a pomba gira.mp3
3 Johns – Death of the European.mp3
3 Lb Thrill – Bad seed.mp3
3 Lb Thrill – Diana.mp3
3 Minute Riot – Matt Deimon.mp3
3 Normal Beatles – Dedicated follower of fashion.mp3
3 Steps Ahead – Paint it black.mp3
3-D Invisibles – Zombie dance.mp3
3's A Crowd – I don't wanna drive you away.mp3
3ColorNegative – A lovely friend.mp3
3ColorNegative – All we have (demo).mp3
3ColorNegative – Especially you.mp3
3ColorNegative – Everything to me.mp3
3ColorNegative – Perfect-worthless.mp3
3ColorNegative – Softly to my arms.mp3
3ColorNegative – Splendid ending.mp3
3ColorNegative – Stand by yourself.mp3
3Ds – Beautiful things.mp3
3Ds – Dreams of Herge.mp3
3Ds – Philadelphia rising.mp3
3Ds – The young and the restless.mp3
3s – Do you see?.mp3
004 – It's as easy as that.mp3
4 Dimensions – Daddy rabbit.mp3
4 Dimensions – I feel so well.mp3

Il s'agit d'éliminer tout ce qui se trouve après le tiret long, ainsi que le tiret long lui-même et si possible l'espace avant le tiret long.

Écrit par : Phil J. Fry 30 Mar 2024, 21:49

Tu peux faire ça en python en deux minutes :

Code
import os # importe le module os
emdash = '—' # tiret long
mon_dossier = '/chemin/vers/mon/dossier' # remplacer par ce qui convient pex '/Users/losto/Music'
for nom_de_fichier in os.listdir(mon_dossier): # pour chaque fichier dans le dossier :
    p = nom_de_fichier.find(emdash) # on trouve le tiret
    q = nom_de_fichier.find('.mp3') # on trouve le point et le mp3
    if (p>0) and (q>p) : # ils ont été trouvés et dans l'ordre :
        nouveau_nom = nom_de_fichier[:p-1]+nom_de_fichier[q:] # [:p-1] efface l'espace avant le tiret
        os.rename(nom_de_fichier,nouveau_nom) # on renomme


Mais attends ... tu auras une erreur parce que tu as plusieurs "2 Minutos" etc.
Ton problème est impossible à résoudre.

Écrit par : macmacmac 30 Mar 2024, 22:07

Citation (losto @ 30 Mar 2024, 19:50) *
Il s'agit d'éliminer tout ce qui se trouve après le tiret long, ainsi que le tiret long lui-même et si possible l'espace avant le tiret long.

Effectivement, je n'avais pas fait attention. Il faut tout supprimer tout ce qu'il y a à partir de…
Mais comme dit, va y avoir un problème vu les noms de fichiers identiques…

Je suis sûr qu'avec le Terminal on peut facilement et rapidement faire ceci.
Mais il va y avoir un problème avec les doublons.
Peut-être que la personne pourra faire qqchose pour les fichiers suivants portants le même nom est une extension, comme le fait le Finder quand tu dupliques des fichiers par exemple…

Écrit par : Vincent 30 Mar 2024, 22:14

.

Écrit par : ades 30 Mar 2024, 22:20

je crois avoir compris, tu veux que (disons, c'est un raccouci) pleins de tes mp3 aient le même nom… je crains que ce ne soit pas possible ; mais, par simple curiosité (certes mal placée), j'aimerais bien connaitre l'intérêt de la chose wink.gif

Écrit par : losto 31 Mar 2024, 15:14

Ce que je n'avais pas précisé :
Je souhaite qu'une app (Gemini par exemple) me trouve tous les doublons de nom (avant le tiret long), et qu'il les classe par ordre décroissant (par exemple, tel nom trouvé dix fois, tel autre nom cinq fois, tel autre trois fois), le but étant de faire apparaître les noms qui ont le plus d'occurrences.J'avais donc imaginé supprimer tout ce qui n'est pas le nom (après le tiret long, tiret compris ou non), sans un instant, pauvre de moi, penser au fait que les doublons ne sont pas acceptés dans une liste du finder.

En dehors même de la solution de Vincent, le plus efficace serait sans doute de glisser ces dizaines de milliers de lignes sur une page de Numbers ou Excel et créer la formule qui me rangera les occurrences identiques par ordre d'importance de nombre... Cette formule, je ne sais pas la créer.

Écrit par : Vincent 31 Mar 2024, 16:40

.

Écrit par : ch21 31 Mar 2024, 17:03

C'est quoi l'intérêt ?
Comme c'est de la musique tu peux difficilement faire l'impasse sur le nom du morceau en ne gardant que l'interprète…
Bref, je ne comprends pas !

Écrit par : jeandemi 31 Mar 2024, 19:13

Et si tu classes par durée ?
C'est assez rare d'avoir des morceaux différents qui ont exactement la même durée

Écrit par : losto 1 Apr 2024, 06:04

C'est étonnant de constater assez souvent que des propositions ne tiennent pas compte des réponses...J'ai bien précisé que le but est de faire apparaître les noms qui ont le plus d'occurrences. Je ne manipule que des noms (des alias des fichiers), rien à voir avec la musique elle-même, je ne touche pas au dossier contenant artistes et titres. Je veux déterminer les trente ou cinquante noms dans ma bibli qui apparaissent le plus de fois. (Et je le précise, les noms d'artistes, pas les titres.)

Écrit par : ades 1 Apr 2024, 08:48

cherche avec automator, ce devrait le faire facilement.
et quant aux réponses "malvenues" bin comment dire ? ce serait p'"tet mieux si personne ne répondait, pas de déception en vue biggrin.gif biggrin.gif biggrin.gif rolleyes.gif

Écrit par : Vincent 1 Apr 2024, 09:53

Citation (losto @ 1 Apr 2024, 07:04) *
C'est étonnant de constater assez souvent que des propositions ne tiennent pas compte des réponses...

Comme mes réponses ne vous conviennent pas, je les ai effacées.

Écrit par : baron 1 Apr 2024, 11:04

Ite missa est

Écrit par : hubeert 16 May 2024, 07:30

bonjour.

Je te réponds ici pour ton problème de fichier, car ton précédent post est bloqué.

"Il s'agit d'éliminer tout ce qui se trouve après le tiret long, ainsi que le tiret long lui-même et si possible l'espace avant le tiret long."

Le terminal est ton ami.

Il suffit de taper ceci dans le terminal :

Code
awk '{ print $1 }'   FS=–  /Users/TonNom/Desktop/MonFichier.txt

(le chemin et le nom de ton fichier, tu peux pour avoir le chemin complet et le nom, déplacer le fichier en question dans le terminal, le chemin et le nom d'afficheront)

FS cest le délimiteur ( tiret long) soit Option et shift ensemble et appuis sur la touches des tirets.

Bonne journée a tout le monde.

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)