2

Python を使用して、OS (Ubuntu) のプロセスに関する統計 (有効期間、開始時間/終了時間など) を収集しようとしています。

タスクの 1 つ: システム内のプロセスの名前と ID を取得する関数を作成しましたが、見栄えがよくありません。

def get_processes():
    p = subprocess.Popen(['ps', '-e'], stdout=subprocess.PIPE)
    raw_string, e = p.communicate()
    strings_arr = raw_string.split('\n')
    strings_arr = strings_arr[1:]
    processes_dict = {}
    # Example of ps -e ansewer:  7 ?        00:00:00 watchdog/0
    for string in strings_arr:
        splted = string.split()
        key, value = None, None
        if len(splted) == 0: continue
        for item in splted:#looking for process id
            if item.isdigit():
                key = int(item)
                break
        value = splted[-1] # looking for process name
        processes_dict[key] = value
    return processes_dict

誰かがそれを美しくしたり、より良い解決策を提案したりできますか? PS私の書き間違いで申し訳ありません。私の母国語ではない英語。

4

1 に答える 1