Python | os.popen

  • Heyho, bin noch neu im Forum, hab aber mal ne Frage zu os.popen.


    Warum ergibt dieses script :



    Code
    1. import os
    2. import time
    3. f=os.popen("mpc current") 
    4. station = "" 
    5. for i in f.readlines(): 
    6.   station += i 
    7. os.system(station)


    das aus ----> sh: 1: N-Joy: not found


    ABER dieses 'Script'

    Code
    1. import os
    2. os.system("mpc current")


    das aus ----> N-Joy


    Die Frage deshalb weil ich das später auf ein LCD schreiben lassen will. Es wird die 'aktueller Sender' Funktion eines Webradios....


    Ich blick des nicht...

  • also wenn os.system aus dem aufruf des befehls mpc current den wert NJOY zurückliert (2 script)
    dann versucht er er im ersten script den befehl "was auch immer in station steht" auszuführen -> not found. Und readlines() brauchst du nicht zusammenbauen, er liest alles auf einmal ein.

    Code
    1. station = i

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Edited once, last by dbv ().

  • Ah ok, danke für die schnelle antwort. Ich habs mal mit 'print()' probiert, jetzt gehts.


    Code
    1. import os
    2. import time
    3. f=os.popen("mpc current") 
    4. for i in f.readlines(): 
    5.   station = i
    6. print("Es leauft gerade "+station)


    gibt jetz[font="Arial"]t 'Es läuft gerade Njoy' aus.[/font]

  • ihhh, python3 xD. Aber ist doch schön das es jetzt geht.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Edited once, last by dbv ().


  • ihhh, python3 xD. Aber ist doch schön das es jetzt geht.


    Was meinst du damit :O ich kenn mich mit python nur soweit aus das ich es mir aus anderen scripts herleiten kann... :D

  • in python3 haben sie aus print eine funktion print() gemacht(das ist nur eine der Änderungen) :). Obwohl print() auch unter 2.7.x funktioniert ist es für mich einfach nicht python :).

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.