Pages : 1
#1 Le 26/09/2008, à 12:01
- Mr men
Python, Bash et espaces
Bonjour à tous.
Je suis en train de faire un petit lecteur de musique en python qui utilise pygame. Pour le moment tout marche à peu près mais j'ai un petit problème : j'utilise totem pour connaitre la longueur de mes musiques et j'utilise une variable qui provient de python dans une commande bash...Peut être pas très clair.
Voilà le bout de code qui me gène :
os.environ['mus']=fichier
longueur=commande.getoutput("totem-video-indexer $mus | grep TOTEM_INFO_DURATION")
longe=int(longueur[20:])
Ici "fichier" est mon fichier de musique à lire.
Dès qu'il y a des espaces dans le nom, la commande ne renvoie rien pour "longueur". Avec des guillemets je pense que ca fonctionnerait mais je ne sais pas comment faire.
Si vous aviez une petite idée pour résoudre ce problème ça m'aiderait pas mal.
Hors ligne
#2 Le 26/09/2008, à 12:32
- karden
Re : Python, Bash et espaces
Salut
Je ferais comme ça :
longueur=commands.getoutput('totem-video-indexer "$mus" | grep TOTEM_INFO_DURATION')
#3 Le 26/09/2008, à 12:40
- Mr men
Re : Python, Bash et espaces
Je viens d'essayer et ça a l'air de ne rien me renvoyer.
J'ai une erreur :
longe=int(longueur[20:])
Value Error: invalid literal for int() with base 10
J'ai en plus, pour vérifier, demandé de m'afficher "longueur" et il n'affiche rien.
J'avais penser à faire comme ça et depuis que j'ai vu que ca ne marchait pas j'ai pas trop d'idée.
Hors ligne
#4 Le 26/09/2008, à 13:07
- tiky
Re : Python, Bash et espaces
Peux-tu faire un print sur longueur[20:]. L'erreur signifie que l'interpréteur python ne parvient pas à convertir la chaîne de caractères en base 10. Il y a donc des caractères dans cette chaîne qui ne permettent pas la conversion vers le type int.
Conseil d'expert: il vous faut un dentifrice adapté...
Hors ligne
#5 Le 26/09/2008, à 13:08
- karden
Re : Python, Bash et espaces
Je viens d'essayer et ça a marché pourtant
>>> os.listdir('.')
['une video.flv']
>>> os.environ['mus']='une video.flv'
>>> longueur=commands.getoutput('totem-video-indexer "$mus" | grep TOTEM_INFO_DURATION')
>>> longe=int(longueur[20:])
>>> print longe
210
Ta vidéo est peut-être mal ciblée ou je ne sais pas
#6 Le 26/09/2008, à 13:12
- Mr men
Re : Python, Bash et espaces
ok je vais refaire tout et je vous tiens au courant.
Hors ligne
Pages : 1