2

わかりました、私のグーグルフーは本当にひどいもので、答えを見つけることができませんでした。うまくいけば、皆さんが私を助けてくれます ^_^

わかりました、単純なスクリプトだと思っていたものは、サブプロセスと正しく通信していないようです。この行を1行ずつ実行しています。mpg123 プレーヤーも使用しています。これは Linux システムです (まあ、Raspberry Pi)。

    from subprocess import Popen, PIPE, STDOUT
    p = Popen(["mpg123", "-C", "test.mp3"], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
    #wait a few seconds to enter this, "q" without a newline is how the controls for the player work to quit out if it were ran like "mpg123 -C test.mp3" on the command line
    p.communicate(input='q')[0]

stdout.read() を問題なく実行できますが、入力に communicate を使用するとハングするだけで、 p.stdin.write('q') は一見何もしません。これはpythonに関連していますが、mpg123ドキュメントの適切な場所も見ていないと感じています。超初心者なのでよろしくお願いします^_^

4

2 に答える 2