Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/09/2008, à 13: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, à 13: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, à 13: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, à 14: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, à 14:08

karden

Re : Python, Bash et espaces

Je viens d'essayer et ça a marché pourtant cool

>>> 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 hmm

#6 Le 26/09/2008, à 14:12

Mr men

Re : Python, Bash et espaces

ok je vais refaire tout et je vous tiens au courant.

Hors ligne