1

私がやりたいことは、バックグラウンドで別の python スクリプトを実行できる python スクリプト (python IRC ボット) を用意することです。

私はこのようなことができます:

#irc codey stuff here...
if x == y:
    os.system('s%\stuff.py') % path 

しかし、これによりmain.pyが停止し、stuff.pyが(1 つのコマンド プロンプトで) 実行されますが、これはやりたくないことです。
したがって、このスクリプトで実行しようとしているのは、IRC ボットが IRC 経由でコマンドを取得したときに、stuff.py をダブルクリックして main.py と stuff.py を実行するように、stuff.py を個別実行することです。同時に。

Windows/Linux でこれを行う別の方法がある場合は、両方を表示できますか?

4

4 に答える 4

5

バックグラウンド プロセスを生成するには、サブプロセス モジュールで Popen クラスを使用します。

例:

from subprocess import Popen
process = Popen(['firefox', '-P', '-no-remote'])

これprocessは、プロセスを強制終了したり、プロセスが終了するのを待ったり、プロセスと通信したりするために使用できるプロセスオブジェクトです。プロセスを生成して忘れたいだけの場合は、からの戻り値を保持する必要はありませんポペン。

于 2012-06-14T06:48:08.210 に答える
1

サブプロセスライブラリが役立つ場合があります。バックグラウンド プロセスを可能にし、フォークと子の管理の一部を処理します。

于 2012-06-14T06:50:02.057 に答える
1

Windows で別のシェルを開くには、次のようにします。

os.system('cmd.exe /c stuff.py')

または、他の人が指摘したように、subprocessモジュールを使用します。実際にsubprocessは、反射する必要があります-他のプロセスを開始するときにつかむツール...

于 2012-06-14T06:55:21.720 に答える