0

サブプロセス ライブラリで遊んでみます。

$youtube-dl http://www.youtube.com/watch?v=co5gy_2uOEY端末では期待どおりに動作しますが、IDLE で実行される次のコード スニペットは何もしていないようです。

> os.chdir('/home/andrew')
> line = 'http://www.youtube.com/watch?v=co5gy_2uOEY'
> yt_dl = subprocess.call(['youtube-dl',line])
1

あるいは、私も試しました:

> yt_dl = subprocess.Popen(['youtube-dl',line])

しかし、それは戻ってき1て何もしませんでした。何が起きてる?

編集:

行を二重引用符で囲むと機能しましたが、このサブプロセスがハングします。次の変更を加えようとしましたが、まだ機能しませんでした。

yt_dl = ["youtube-dl","http://www.youtube.com/watch?v=co5gy_2uOEY"]
x = subprocess.Popen(yt_dl, stdout=subprocess.PIPE, stdin=subprocess.PIPE, shell=True)
stdout, stderr = x.communicate()
4

3 に答える 3

1

動作するためハングします。出力を実行するターミナルを確認できidleますyoutube-dl

于 2013-02-22T00:41:27.983 に答える
1

http定義されていないというエラーが表示されない理由はわかりませんが、次を使用する必要があります。

line = "http://www.youtube.com/watch?v=co5gy_2uOEY"

文字列を渡すにはsubprocess.call

于 2013-02-22T00:01:51.237 に答える
-2

shell=True を追加しようとしましたか? (これは一般的に推奨されていませんが。)

yt_dl = subprocess.Popen(['youtube-dl',line] shell=True)

于 2013-02-22T00:05:49.677 に答える