0

インターネットがちらついた場合に Midori という Web ブラウザをリロードするスクリプトを作成しようとしています。しかし、CLI から Midori を開いた場合にのみ動作するようです。そうしないと、再ロード後にプログラムがクラッシュします。subprocessしたがって、モジュールを介してスクリプトで Midori を開くのが最善の方法であると判断しました。したがって、これをコードの最初の引数の 1 つとして配置します。

import subprocess as sub
sub.call(["midori"])

ブラウザは開きますが、Midori を終了するまでプログラムの残りの部分はフリーズします。スレッドを使用しようとしましたが、うまくいかないようです。

Python を使用してアプリケーションを開き、そのアプリケーションが開かれた後もスクリプトの残りの部分を実行し続ける方法はありますか?

4

1 に答える 1

2

ドキュメントから:

args で記述されたコマンドを実行します。コマンドが完了するのを待ってから、returncode 属性を返します。

(強調を追加)

これが期待される動作であることがわかります。これを回避するには、subprocess.Popen代わりに を使用します。これは同じ方法でブロックしません:

from subprocess import Popen
midori_process = Popen(["midori"])
于 2013-04-14T00:00:35.707 に答える