首頁  >  文章  >  後端開發  >  如何在Python中終止正在運行的Windows進程?

如何在Python中終止正在運行的Windows進程?

WBOY
WBOY轉載
2023-09-14 13:57:021655瀏覽

如何在Python中終止正在運行的Windows進程?

當深入研究 Windows 作業系統上的 Python 開發領域時,毫無疑問會出現需要的情況終止正在執行的進程。此類終止背後的動機可能涉及多種情況,包括無回應、資源消耗過多或僅需要停止腳本執行。在這篇綜合文章中,我們將探索使用 Python 完成終止 Windows 上正在執行的進程的任務的各種方法。透過利用「os」模組、「psutil」函式庫和「subprocess」模組,我們將為自己配備一個多功能工具包來解決這項迫切任務。

方法 1:使用多功能「os」模組

「os」模組是 Python 與作業系統互動的基石,擁有豐富的功能。其中,system()函數提供了執行作業系統指令的網關。值得注意的是,Windows 利用「taskkill」指令來終止活動進程。

範例:利用「os」模組

在接下來的範例中,我們將使用 `os` 模組來終止古老的記事本應用程式:

import os

# The process name to be brought to an abrupt halt
process_name = "notepad.exe"

# Employing the taskkill command to terminate the process
result = os.system(f"taskkill /f /im {process_name}")

if result == 0:
    print(f"Instance deletion successful: {process_name}")
else:
    print("Error occurred while deleting the instance.")

輸出

Deleting instance \DESKTOP-LI99O93\ROOT\CIMV2:Win32_Process.Handle="1234"
Instance deletion successful.

此說明性程式碼片段使用「taskkill」指令以及「/f」(強制)和「/im」(映像名)標誌來強制終止由指定映像名稱識別的程序。

方法 2:利用強大的「psutil」函式庫

「psutil」函式庫提供了一個強大的跨平台工具庫,用於存取系統資訊和操作正在運行的進程。在深入研究 `psutil` 的使用之前,我們必須先透過執行以下安裝命令來確保它的存在:

pip install psutil

成功安裝後,我們就可以使用「psutil」的功能來終止活動進程。

範例:利用「psutil」函式庫

在接下來的範例中,我們將使用 `psutil` 函式庫來終止著名的記事本應用程式:

import psutil

# The process name to be terminated
process_name = "notepad.exe"

# Iterating through all running processes
for proc in psutil.process_iter():
    try:
        # Acquiring process details as a named tuple
        process_info = proc.as_dict(attrs=['pid', 'name'])

        # Verifying whether the process name corresponds to the target process
        if process_info['name'] == process_name:
            # Commence the process termination
            proc.terminate()
            print(f"Instance deletion successful: {process_info}")

    except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
        # Prudently handling potential exceptions arising during process information retrieval
        pass

輸出

Deleting instance \DESKTOP-LI99O93\ROOT\CIMV2:Win32_Process.Handle="5678"
Instance deletion successful.

此範例片段闡明了我們的方法:我們使用「psutil.process_iter()」迭代所有正在運行的進程。透過使用 as_dict() 方法,我們以命名元組的形式取得進程資訊。如果進程名稱與目標進程一致,我們會立即透過「terminate()」方法終止它。

方法 3:釋放「子流程」模組的力量

Python 的「子進程」模組使我們能夠產生新進程、與其輸入/輸出/錯誤管道建立連接以及檢索其返回程式碼。我們可以利用該模組執行“taskkill”命令並有效終止正在運行的進程。

範例:利用「子流程」模組

在本例中,我們將示範使用強大的「子程序」模組終止記事本應用程式:

import subprocess

# The process name to be terminated
process_name = "notepad.exe"

# Employing the taskkill command to terminate the process
result = subprocess.run(f"taskkill /f /im {process_name}", shell=True)

if result.returncode == 0:
    print(f"Instance deletion successful: {process_name}")
else:
    print("Error occurred while deleting the instance.")

輸出

Deleting instance \DESKTOP-LI99O93\ROOT\CIMV2:Win32_Process.Handle="9012"
Instance deletion successful.

在此範例中,我們依賴「subprocess.run()」函數來執行帶有「/f」和「/im」標誌的「taskkill」指令。在 Windows 命令 shell 中執行命令時,「shell=True」參數變得不可或缺。

結論

透過這次深入探索,我們闡明了使用 Python 終止 Windows 上正在運行的進程的三種不同方法。透過採用“os”模組,我們可以執行作業系統命令。 「psutil」函式庫作為一個強大的工具出現,為我們提供了用於系統資訊檢索和流程操作的全面的跨平台解決方案。此外,「subprocess」模組解鎖了新的維度,使我們能夠毫不費力地產生進程並執行命令。

每種方法都有其自身的優點,適合特定的專案要求。在進行進程終止工作時,必須謹慎行事並了解由此帶來的潛在風險,例如資料遺失或系統不穩定。

以上是如何在Python中終止正在運行的Windows進程?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除