5

これはかなり基本的な質問だと思いますが、とにかくここにあります。

notepad.exe などのプロセスが実行中であることを確認する Python スクリプトを作成する必要があります。プロセスが実行中の場合は、何もしません。そうでない場合は、開始します。これはどのように行われますか。

Windows XP で Python 2.6 を使用しています

4

3 に答える 3

15

モジュールのプロセス作成機能は、osPython 2.6以降では明らかに非推奨であり、subprocessモジュールが現在選択されているモジュールであるため、...

if 'notepad.exe' not in subprocess.Popen('tasklist', stdout=subprocess.PIPE).communicate()[0]:
    subprocess.Popen('notepad.exe')

Python 3では、チェックされる文字列はバイトオブジェクトである必要があるため、次のようになります。

if b'notepad.exe' not in [blah]:
    subprocess.Popen('notepad.exe')

(開始するファイル/プロセスの名前はbytesオブジェクトである必要はありません。)

于 2010-07-09T18:14:52.723 に答える
4

いくつかのオプションがあります。

1: より大雑把ですが、明らかなのは、以下に対してテキスト処理を行うことです。

os.popen('tasklist').read()

2: より複雑なオプションは、pywin32 を使用して win32 API を調査し、どのプロセスが実行されているかを把握することです。

3: WMI (これは今見つけたものです)。これは、 WMI を介してマシンにプロセスを照会する方法の vbscriptの例です。

于 2010-07-09T18:04:17.083 に答える
3

Linux プロセス管理用の Python ライブラリ

于 2010-11-19T21:40:43.347 に答える