Bonjour,
Je suis en train de develloper une application en python permettant les lire les flux videos provenant d' Internet et/ou de la freebox (un peu du style de ADSLTV, myfreetv...).
Je devellope sur du Linux (Ubuntu 7.10) mais cette application sera disponible sous Windows (quand une premiere version sera finalisée, ce qui n'est pas gagné vu le peu de temps que j'arrive à consacrer à son devellopement...). Au niveau de la GUI, j'utilise PyGTK. Voila pour la présentation.
La question qui m'amene à poster sur ce forum, concerne le gestion de la liste de tous les flux web. Je voudrait que celle-ci soit dans un fichier, pour pouvoir, bien sur être chargée dans l'appli, mais aussi modifiée.
Une fois chargé, cette "liste" devient un dictionnaire sous la forme suivante, pour pouvoir ensuite être afficher dans la GUI :
{'channel_name_1': {'category': 'Free', 'type': 'Musique', 'id': 'channel_name_1', 'icon' : 'icon_chanel.png', 'url_play' : 'http://........', 'url_channel' : 'http://........'}, 'channel_name_2': {'category': 'WebTV', 'type': 'Musique', 'id': 'channel_name_2', 'icon' : 'icon_chanel.png', 'url_play' : 'http://........', 'url_channel' : 'http://........'}}
J'ai commencé par utiliser csv, en créant une ligne par channel et une colonne par champ. Mais cela devient compliqué lorsque je veux que l'utilisateur puisse par exemple modifié le champ icon par exemple.
J'ai donc regarder une autre maniere de gérer la chose en créant un fichier que j'importe comme module grace à execfile. le fichier est de la forme :
1 2
| define_channel(id = 'channel_name_1', type = 'Divers', category = 'Free', icon = 'icon.png', url_play = 'http://........', url_channel = 'http://........')
define_channel(id = 'channel_name_2', type = 'Divers', category = 'Free', icon = 'icon.png', url_play = 'http://........', url_channel = 'http://........') |
Et je me retrouve avec le même dictionnaire que précedement.
L'import se passe bien. La modification des champs aussi mais c'est l'application de ces modifications dans le fichier qui posent problémes. Je n'arrive pas trouver la commande permettant de le faire.
Merci d'avance pour l'aide que vous pourriez m'appoter.
Partager