Permuter la numérotation de deux fichiers mp3
Résolu/Fermé- Permuter la numérotation de deux fichiers mp3
- Comment réduire la taille d'un fichier - Guide
- Convertisseur mp3 - Télécharger - Conversion & Extraction
- Télécharger music mp3 gratuit download pc - Télécharger - Conversion & Extraction
- Fusionner deux fichiers excel - Guide
- Wetransfer gratuit fichiers lourd - Guide
5 réponses
Tu as :
1_musique-abc.mp3
2_musique-bcd.mp3
et tu voudrais :
1_musique-bcd.mp3
2_musique-abc.mp3
Tout ce que fait ton code est d'échanger les extensions, qui sont malheureusement identiques dans le cas actuel.
Est-ce que les numéros peuvent dépasser 10, voire 100?
Est-ce qu'il y a d'autres '_' après le premier?
Avec des extensions identiques, le code suivant devrait fonctionner:
# Extraire les noms des fichiers à échanger filename1 = os.path.join(source_dir, files[num1-1]) filename2 = os.path.join(source_dir, files[num2-1]) # Échanger les numéros situés au debut de leur noms index1 = files[num1-1].index("_") index2 = files[num2-1].index("_") newname1 = files[num2-1][:index2] + files[num1-1][index1:] newname2 = files[num1-1][:index1] + files[num2-1][index2:] newname1 = os.path.join(source_dir, newname1) newname2 = os.path.join(source_dir, newname2) name1, ext1 = os.path.splitext(newname1) name2, ext2 = os.path.splitext(newname2) os.rename(filename1, f"{name1}{ext1}") os.rename(filename2, f"{name2}{ext2}")
J'ai des doutes sur la pertinence d'échanger les titres dans ta base de données car les anciens noms n'existeront plus.
Avec le code suivant, on devrait pouvoir échanger:
1_musique-abc.mp3
21_musique-def.mp3
pour:
1_musique-def.mp3
21_musique-abc.mp3
Note qu'un dossier n'est pas forcément trié dans l'ordre dans lequel il est affiché.
La commande dir de Windows et ls de Ubuntu les affichent dans l'ordre "alphabétique".
Si c'est un automate qui lira le dossier pour le faire jouer, il pourrait le lire dans l'ordre de création et non dans l'ordre d'affichage.
-
# Extraire les noms des fichiers à échanger filename1 = os.path.join(source_dir, files[num1-1]) filename2 = os.path.join(source_dir, files[num2-1]) # Échanger les numéros situés au debut de leur noms index1 = files[num1-1].index("_") index2 = files[num2-1].index("_") newname1 = files[num2-1][:index2] + files[num1-1][index1:] newname2 = files[num1-1][:index1] + files[num2-1][index2:] newname1 = os.path.join(source_dir, newname1) newname2 = os.path.join(source_dir, newname2) os.rename(filename1, newname1) os.rename(filename2, newname2)
24 févr. 2023 à 02:44
Hello,
Bon et sinon concernant le code python, le code serait significativement plus simple en utilisant le module pathlib et la fonction split. Mais bref, si tu es content avec le code actuel, autant en rester là ;-)
Enfin, il y a des choix assez surprenant dans le code que tu proposes. Tu utilises EasyID3 pour modifier les métadonnées des fichiers mp3, mais tu stockes le titre et le numéro de piste dans le titre. Généralement le numéro de piste est stocké dans un champ dédié quand on parle d'un album. Et si on parle d'une playlist, la bonne manière de faire est d'ordonner des fichiers mp3 dans un fichier m3u, ce qui ne nécessite aucune compétence en programmation et est supporté par la plupart des lecteurs mp3...
Bonne continuation
Salut, je ne connais (casiment) rien au langage Python, ses modules et bibliothèques ! Les codes ont été écrit par ChatGPT qui est une intelligence artificielle et qui a fait elle même le code. J'en aurait appris plus que je ne le pensais en m'intéressant au codage Python par hasard ahaha !
Vu que je ne sais pas de quelle manière l'enceinte lis les fichiers sur la clé USB (donc si c'est un automate comme disait PierrotLeFou) j'ai bien fais en sorte que le code place les numéros dans l'endroit dédié dans les tags mais aussi au début des titres, par sécurité pour forcer l'ordre, car je ne sais pas ce qui établira l'ordre dans lequel les fichiers seront lu sur l'enceinte.
Oui le m3u me dit quelque chose mais je ne sais pas si l'enceinte l'aurais pris en compte donc j'ai voulu essayer une approche un peu plus "simple" pour classer les sons. Merci à toi pour ton aide et tes propositions !
Ce qui m'a embrouillé, c'est l'idée de possiblement échanger les extensions. Est-ce que toutes les extensions sont 'mp3' dans ton cas?
Redis-moi ce que tu attends de l'échange:
1_musique-abc.mp3
2_musique-def.mp3
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionChanger l'ordre dans l'affichage ou dans le dossier?
Pour changer dans le dossier, il faut faire des rename.
Pour changer seulement sur l'affichage, il suffit d'interchanger les entrées dans la liste files .
Je cherche seulement a rename certains fichiers en échangeant les numéros l'ami ! Je dois ranger les sons dans l'ordre précis du déroulement de la soirée et interchangé certains de numéros. C'est peut-être plus clair comme ça? On va y arriver bordel haha merci beaucoup de ton aide vraiment c'est sincère
Exemple concret, j'ai dans mon dossier:
1_michael-jackson-thriller.mp3
2_bruno-mars-treasure.mp3
3_stevie-wonder-superstition.mp3
4_autresonun.mp3
5_autresondeux.mp3
J'aimerai simplement sur le programme pouvoir dire: prend "1_michael-jackson-thriller.mp3" et "4_autresonun.mp3" et rename les en échangeant le numéro pour que ça devienne "4_michael-jackson-thriller.mp3" et ""1_autresonun.mp3"
Ce qui me donnera:
1_autresonun.mp3
2_bruno-mars-treasure.mp3
3_stevie-wonder-superstition.mp3
4_michael-jackson-thriller.mp3
5_autresondeux.mp3
Salut l'ami, désolé, je n'ai pas pu revenir sur le forum plus tôt. Ton programme a bien fonctionné sans soucis, j'ai réussi à modifier le code (tout avec ChatGPT bien évidemment) pour faire en sorte que la musique 26 corresponde bien au numéro 26 de la liste/index créer dans le programme. Car comme je t'ai montré sur un screen dans un autre commentaire, les musiques étaient attribué de manière assez confuse. Ce n'étais pas si dérangeant mais moins pratique.
J'ai aussi rajouté que le programme m'indique quelles sont les 2 musiques qui ont été échangés en affichant les titres en vert pour plus de lisibilité (avec la bibliothèque Colorama) et que le message s'affiche pendant 5 secondes pour bien pouvoir lire sans soucis la modification. Le programme redonnait ensuite lui même de base la liste avec les 2 musiques échangées.
Je te remercie énormément car cela m'a bien évité 2 heures au moins de travail.
J'ai aussi fais 3 autres programmes supplémentaires qui permettent de "formater" les fichiers de sorte à ce que tout se lise dans l'ordre (numéro et nom de fichier copiés dans les tags, sur le titre, et seulement le numéro dans le numéro de piste) et que chaque mot commence par une majuscule, et également supprime tout les tirets.
Si jamais tu es intéressé par la gueule des codes je te les partagés volontiers ! Encore merci pour ta gentillesse, ta patience, ta bienveillance envers quelqu'un qui n'y connais pas grand chose en Python, et surtout la rapidité de tes réponses. Je te souhaite le meilleurs ahaha. !
22 févr. 2023 à 02:59
Bonsoir et merci pour ta réponse rapide ! Oui le nombre de musique dépasse les 100. Non pas de "_" après le premier. Je me doute bien que échanger un 1 avec un 2 peut causer trouble avec un 31 ou bien un 32 dans le programme car le 2 et le 1 sont présents dans ces valeurs.
22 févr. 2023 à 03:00
Et oui tu as bien compris !
Modifié le 22 févr. 2023 à 03:27
Re ! Je viens de tester avec ton code, dans l'invite de commande c'est classé différemment: https://prnt.sc/3gSkpWHaJsRL c'est pas dans l'ordre des numéros des fichiers (ce qui ne me dérange absolument pas si je peux effectuer les manips) mais si j'ai bien compris vu que la liste "indexe" un nombre a chaque musique c'est plus facile de se référer à ce numéro plutôt qu'a celui des fichiers qui peuvent vites être confondus.
Alors ya un petit soucis, seuls les noms complets (nombres compris) se sont changés ! Pas les musiques: "1_musiqueabc" s'est fait renommé "2_musiquebcd" mais ça reste toujours la même musique.
22 févr. 2023 à 03:29
Et vice-versa bien-entendu. Je te remercie beaucoups pour ton aide.
Modifié le 22 févr. 2023 à 03:43
"J'ai des doutes sur la pertinence d'échanger les titres dans ta base de données car les anciens noms n'existeront plus."
Ouais c'est vrai que dit comme ça, mais bon en soit je pensai vraiment pas que ce soit si fastidieux et qui fallait détourner autant les choses pour si peu ahaha... En soit éditer un fichier manuellement et échanger les numéros c'est simple, mais sur un grand nombre de file a traiter bah c'est assez long...
Et je pensai que le semi-automatiser le serait aussi et que ça pouvait me faire gagner du temps, mais bon ça m'a l'air compliqué.