Voila , voila ...
pour répondre à mon envie de reprendre la programmation (qui fut brutalement interrompu en 5eme en pleine découverte du qbasic.exe présent sur e CD-rom de win95 ) j'ai décidé de m'atteler à la tache python , et tout comme Linus avait la prétention de créer un kernel en apprennant le C , j'ai la prétention d'ecrire un petit taggueur/indexeur de fichiers multimedias ( oui , je sait que ca existe deja ) en apprennant Python.
Je pense que mon programme se contenteras au debut d'ouvrir un fichier à la fois , de donner les infos et de les remplacer par celles que l'utilisateur entreras.
Mais le but ultime de jeu est bien evidemment que tout cela se fasse en graphique ( gtk , qt , tk ? ).
Et la une question se pose , je programme certes pour moi-meme dans ce cas précis , mais sait-ton jamais , il pourrait etre utile à d'autres , et l'autre pourrait tres bien etre un amoureux de la ligne de commande .
Vaut-il mieux que j'attaque la création d'une interface graphique des que je le peux , et que je fasse en paralelle une version en mode texte de mon script , ou est-ce préférable de laisser mon programme de base ( celui qui se contente de lire , d'ecrire et de lister sans ergonomie) en mode texte , et finalement faire une interface graphique qui l'appellera sans cesse des qu'une modification est à faire dans un fichier ?
Notez que je suis rempli de bonne volonté mais point encore de connaissances pointues , mais vous vous ferez un plaisir de me dire pourquoi l'une ou l'autre des solutions est la meilleure :-)
# Comment je ferais
Posté par Pinaraf . Évalué à 2.
En gros, une classe pour manipuler les fichiers. Ensuite, une classe qui sert d'interface (en PyQt ou PyGtk), puis une d'interface texte..
La fonction principale instanciera un objet d'interface en fonction d'arguments sur la ligne de commande, et ça roulera !
[^] # Re: Comment je ferais
Posté par Thy . Évalué à 1.
En gros je scinde mon programme en deux:
Une couche basse qui se contente de manipuler abruptement les fichiers , et qui transmet les résultat de son labeur via des variables ( par exemple ) , et une couche haute qui montre tout ca à l'utilisateur.
J'ai compris ?
[^] # Re: Comment je ferais
Posté par Pinaraf . Évalué à 2.
En gros, pour faire simple (pitié les puristes, pas taper ! :p
un objet tu peux voir ça comme un assemblage de variables et de fonctions.
Genre tu définis un objet mp3_file
=> variable filename, un dico python pour stocker les tags (nommé tags)...
=> constructeur : prend un argument file
=> fonctions : play(), save_tags(), refresh_tags()
Ensuite à l'utilisation :
un_mp3 = mp3_file("/musique/test.mp3")
print "Les tags du mp3 :"
for tag_name in un_mp3.tags.keys():
print tag_name, " => ", un_mp3.tags[tag_name]
print "Lecture du mp3..."
un_mp3.play()
C'est plus clair maintenant?
[^] # Re: Comment je ferais
Posté par Thy . Évalué à 1.
Donc en gros j'aurais plusieurs objets et chacun aura son role :
-(eventuellement definir si le fichier est un mp3 taggué en id3v1 , v2 , etc , ou un ogg ou un flac)
-lire les tag ( ou mettre le nom du fichier en mémoire )
-transmettre les tags à l'interface graphique
-lire ce que veut l'utilisateur
-ecrire les tags ( ou modifier le nom du fichier en consequence )
-et enfin verifier que ca s'est bien passé.
et tout cela communiqueras en mettant les infos utiles dans des variables à valeurs multiples ( le dicos dont tu parles )
En gros un objet est une fonction complexe ( lire de tel octet à tel octet , puis mettre le contenu dans telle case de telle tableau en indiquant que ca c est le titre , ca l'artiste et ca l'année ) que l'on utilise , appelle de facon simple comme liremp3 (nom_du_fichier_à_lire).
oui ?
[^] # Re: Comment je ferais
Posté par Pinaraf . Évalué à 2.
-(eventuellement definir si le fichier est un mp3 taggué en id3v1 , v2 , etc , ou un ogg ou un flac)
-lire les tag ( ou mettre le nom du fichier en mémoire )
-transmettre les tags à l'interface graphique
-lire ce que veut l'utilisateur
-ecrire les tags ( ou modifier le nom du fichier en consequence )
-et enfin verifier que ca s'est bien passé.
=> 1 objet mp3_file + 1 objet ogg_file + 1 objet par type de fichier quoi + 1 objet par interface dispo.
Regarde ce lien (c'est cadeau, bonheur pour toi :p) : http://pinaraf.robertlan.eu.org/demo_python.py(...)
En gros, un objet c'est un ensemble de variables, de fonctions... Les objets ont plusieurs propriétés, l'héritage notamment.
Exemple :
On définit une classe vehicule (une classe, c'est le "schéma" d'un objet), qui a la fonction avancer, reculer, tourner, les variables vitesse, position.
On définit une classe voiture qui hérite de vehicule, avec les variables moteur (sachant que moteur sera un objet à part pour pouvoir faire ma_bagnole.moteur.allumer() par exemple), roues, modèle, les fonctions allumer_essuieglaces, eteindre_essuieglaces.
Ensuite, une classe velo qui hérite de vehicule, puis camion, puis........
Bref, la programmation orientée objet fournit une solution très simple à la représentation de la réalité dans un langage de programmation
[^] # Re: Comment je ferais
Posté par Thy . Évalué à 1.
( rtfm , je m'en doutais hein :-) , mais il y a des choses qu'on n'apprends pas dans les livres justement , c'est ca qui est bon avec un etre humain)
[^] # Re: Comment je ferais
Posté par Thy . Évalué à 1.
# Petit conseil pour python
Posté par Nico . Évalué à 1.
http://fr.diveintopython.org/toc.html(...)
de plus dans les exemples, il t'explique comment faire pour ouvrir les fichiers multimedias, les tagguer... bonne lecture
# Bon courage
Posté par Frederic Bourgeois (site web personnel) . Évalué à 1.
Aprés moult essais, je suis (definitivement ?) passé à Gtk avec Glade.
Je ne peux que te recommander de le tester.
J'ai commencé en mai de cette année, sans base particuliére, et malgré
mes etourderies et mon manque de temps (et de connaissances),
ça commence à ressembler à quelque chose.
Ps: il est possible de suivre ton dev quelque part ?
[^] # Re: Bon courage
Posté par Thy . Évalué à 2.
Le nom : Froggie
Free French audiO Goth & Indus Indexing & tagging utilitIE
L'utilistaire francais et libre d'indexage et de taguage de fichiers audios goth et industriels , je suis désolé , j'ai guere réussi à trouver plus naze.
La licence : GPL
Le graphiste : y'en a pas
Le site : y en a pas
Le CVS : je l'ai mangé
En gros je n'en suis qu'a me poser les questions pré-conception.
Mais des que ca prend forme ( enfin , des que le script arrive à etre lancé hein ) , je te tient au courant , si tu es pressé :
thy point nae at free point fr
[^] # Re: Bon courage
Posté par Frederic Bourgeois (site web personnel) . Évalué à 2.
Ok , et bien quand tu auras commencé, je jetterais un oeil sur ton code.
PS: Si tu veux un petit exemple Python/Gtk clique sur page perso
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.