Objectif trier mes ebooks !

Appel aux pros de la programmation…

Qui pourrait me coder un petit programme ou batch à exécuter dans un dossier qui contient des epub et pdf.

Epub nommés sous la forme : Nom, Prénom - Titre (année)

En exécutant le prog, il doit lire les titres des epub et pdf, vérifier qu’un dossier de chaque auteur n’existe pas déjà et créer un dossier sous la forme Nom, Prénom (nombre de fichiers du même auteur).

Il faut qu’il lise la chaîne de caractère avant le premier " - " ou éventuellement avant le premier “&” ou “et” du nom si auteurs multiples. Attention aux noms composés avec un tiret.

Voici un exemple :

Fichiers présents dans le dossier :

Pépère, Lise & Robert, Jacques - Trouvailles (2012)
Piglia, Ricardo - Argent brûlé.epub
Piglia, Ricardo - Pour Ida Brown.epub
Pignat, Caroline - Les amoureux de l’Empress (2015).epub
Pigozzi, Caroline - Le vatican indiscret.epub
Pincon, Monique et Michel - La violence des riches.epub
Pineau-Valencienne, Valérie - Une cicatrice dans la tête.epub

Dossiers crées par l’exécution du programme :

Pépère, Lise (1)
Piglia, Ricardo (2)
Pignat, Caroline (1)
Pigozzi, Caroline (1)
Pincon, Monique (1)
Pineau-Valencienne, Valérie (1)

Si dossier déjà existant, il doit déplacer les fichiers concernés dans les bons dossiers et incrémenter le chiffre entre parenthèses en conséquence (nombre de livres).

J’espère que cette demande est réalisable et avoir été assez précis dans ma description… Pour info mon OS est W10 64bits.

Merci par avance

en s’arrachant qq cheveux c’est surement faisable avec du batch (fichier .bat ou .cmd) à base de variable, de if, et de bouche for pour le trie et de ren, md et copy pour copier, faire les répertoires et renommer
par exemple une commande lançable en invite de commande qui fait une part du boulot, sans gérer le cas ou il y a plusieurs tirets:
for /F “tokens=2 delims=-” %G IN (‘dir *.epub /ogen /b’) do @echo %G

via un script visual basic aussi (fichier .VBS) si c’est toujours lançable dans le IE de win10
voila pour les trucs de base avec windows sans ajout (y a peut être aussi powershell )

mais sinon, et sans taper dans du gros langage, le top ce serait probablement de partir sur qq chose de plus évolué comme un script python qui saurait faire cela (et très facilement), mais faudra telecharger python par contre pour l?exécuter.
bon vu comme je suis rouillé en programmation me faudrait plusieurs heures pour juste me remettre dans le bain et donc encore un peu plus pour faire un truc comme cela donc je suis pas trop chaud désolé

bon hier j’ai mis le doigt dans l’engrenage après mon message.

voila un script python à tester
Il est impératif que ce soit testé sur une copie du répertoire des originaux
je supprime pas les fichiers donc cela devrait rien casser mais bon cela vaut malgré tout mieux

faut mettre le fichier trie.py dans ce répertoire de test puis double cliquer dessus pour le lancer
il est dispo la : www.cjoint.com…
si tu n’as pas d’antipub, fait bouton droit sur le lien GDdn2Hq2hMc_trie.py dans la ligne texte “Document joint : GDdn2Hq2hMc_trie.p” puis “Enregistrer la cible du lien”

il faut environnement python 3 d’installé (idéalement > 3.5.1 car c’est celle que j’avais, je viens de tester avec la 3.6.1 64bits ) :
faut installer Windows x86-64 executable installer ou Windows x86 executable installer de la page www.python.org…

j’ai pas testé les filtres pour prendre avant “et” et “&” donc a voir si cela sera bien pris en compte

je ne déplace pas les fichiers mais je les copie, faudra voir si la quantité de fichier copié correspond au nombre de fichier présent
en entrée je teste les fichiers avec extensions epub, EPUB, PDF et pdf, rien d’autre ne passera sans modif

edit : après réflexion, il vaudrait mieux détecter " et " que le “et” du script actuel
donc avant usage je te conseille de faire bouton droit dessus, puis “edit with IDLE” puis “edit with idle 3.6”
le texte du script s’ouvre alors
en bas a droite de la fenetre tu as normalement la position actuelle Ln 1 col:0 en debut de texte
en ligne 38 et 39 (ln 38 col 43) il faut modifier les 2 “et” en " et " puis sauvegarder

Edité le 04/04/2017 à 14:59

Merciiii t’es un chef…

Je regarde ça dès ce weekend :slight_smile: