Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk membunuh proses Windows yang sedang berjalan dalam Python?

Bagaimana untuk membunuh proses Windows yang sedang berjalan dalam Python?

WBOY
WBOYke hadapan
2023-09-14 13:57:021654semak imbas

Bagaimana untuk membunuh proses Windows yang sedang berjalan dalam Python?

Apabila menyelami dunia pembangunan Python pada sistem pengendalian Windows, tidak syak lagi akan ada situasi di mana timbul keperluan untuk menamatkan proses yang sedang berjalan. Motivasi di sebalik penamatan sedemikian mungkin melibatkan pelbagai keadaan, termasuk tidak bertindak balas, penggunaan sumber yang berlebihan, atau sekadar keperluan untuk menghentikan pelaksanaan skrip. Dalam artikel komprehensif ini, kami akan meneroka pelbagai cara untuk menyelesaikan tugas menamatkan proses berjalan pada Windows menggunakan Python. Dengan memanfaatkan modul "os", perpustakaan "psutil" dan modul "subproses", kami akan melengkapkan diri kami dengan kit alat serba boleh untuk menyelesaikan tugas yang mendesak ini.

Kaedah 1: Menggunakan modul "os" pelbagai fungsi

Modul "os" ialah asas interaksi Python dengan sistem pengendalian dan mempunyai fungsi yang kaya. Antaranya, fungsi system() menyediakan pintu masuk untuk melaksanakan perintah sistem pengendalian. Perlu diingat bahawa Windows menggunakan perintah "taskkill" untuk mematikan proses aktif.

Contoh: memanfaatkan modul "os"

Dalam contoh berikut, kami akan menggunakan modul `os` untuk mematikan aplikasi Notepad purba:

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.")

Output

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

Coretan kod ilustrasi ini menggunakan perintah "taskkill" bersama-sama dengan bendera "/f" (force) dan "/im" (nama imej) untuk menamatkan secara paksa proses yang dikenal pasti oleh nama imej yang ditentukan.

Kaedah 2: Manfaatkan perpustakaan "psutil" yang berkuasa

Pustaka "psutil" menyediakan perpustakaan alat merentas platform yang berkuasa untuk mengakses maklumat sistem dan memanipulasi proses yang sedang berjalan. Sebelum mendalami penggunaan `psutil`, kita mesti memastikan kehadirannya terlebih dahulu dengan melaksanakan arahan pemasangan berikut:

pip install psutil

Selepas pemasangan berjaya, kita boleh menggunakan fungsi "psutil" untuk menamatkan proses aktif.

Contoh: memanfaatkan perpustakaan "psutil"

Dalam contoh berikut, kami akan menggunakan perpustakaan `psutil` untuk menamatkan aplikasi Notepad yang terkenal:

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

Output

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

Contoh coretan ini menggambarkan pendekatan kami: kami menggunakan "psutil.process_iter()" untuk mengulangi semua proses yang sedang berjalan. Dengan menggunakan kaedah as_dict(), kami mendapat maklumat proses dalam bentuk tuple bernama. Jika nama proses sepadan dengan proses sasaran, kami segera menamatkannya melalui kaedah "terminate()".

Kaedah 3: Lepaskan kuasa modul "Subproses"

Modul "subproses" Python membolehkan kami menghasilkan proses baharu, mewujudkan sambungan ke paip input/output/ralatnya dan mendapatkan semula kod pemulangannya. Kita boleh memanfaatkan modul ini untuk melaksanakan perintah "taskkill" dan mematikan proses berjalan dengan berkesan.

Contoh: Menggunakan modul "Subproses"

Dalam contoh ini, kami akan menunjukkan cara membunuh aplikasi Notepad menggunakan modul "Subproses" yang berkuasa:

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.")

Output

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

Dalam contoh ini, kami bergantung pada fungsi "subprocess.run()" untuk melaksanakan perintah "taskkill" dengan bendera "/f" dan "/im". Parameter "shell=True" menjadi sangat diperlukan apabila melaksanakan arahan dalam shell arahan Windows.

Kesimpulan

Dengan penyelaman mendalam ini, kami menerangkan tiga cara berbeza untuk mematikan proses yang berjalan pada Windows menggunakan Python. Dengan menggunakan modul "os" kita boleh melaksanakan perintah sistem pengendalian. Pustaka "psutil" muncul sebagai alat berkuasa yang menyediakan kami penyelesaian merentas platform yang komprehensif untuk mendapatkan semula maklumat sistem dan manipulasi proses. Tambahan pula, modul "subproses" membuka kunci dimensi baharu, membolehkan kami menghasilkan proses dan melaksanakan arahan dengan mudah.

Setiap kaedah mempunyai kelebihan tersendiri dan sesuai untuk keperluan projek tertentu. Apabila bekerja pada penamatan proses, anda mesti berhati-hati dan memahami potensi risiko, seperti kehilangan data atau ketidakstabilan sistem.

Atas ialah kandungan terperinci Bagaimana untuk membunuh proses Windows yang sedang berjalan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam