Menyembunyikan Konsol dengan os.system() dan subprocess.call()
Menggunakan os.system() atau subprocess.call( ) boleh menjadi mudah untuk menjalankan perintah sistem dari dalam skrip Python. Walau bagaimanapun, fungsi ini sering menyebabkan tetingkap konsol muncul, yang mungkin tidak diingini. Terdapat beberapa teknik untuk menyekat tingkah laku ini.
Menggunakan Struktur STARTUPINFO
Kelas subproses.STARTUPINFO menyediakan kawalan ke atas gelagat permulaan subproses. Dengan menetapkan bendera STARTF_USESHOWWINDOW dan menentukan SW_HIDE sebagai bendera tetingkap pameran, anda boleh menghalang tetingkap konsol daripada dibuat:
import subprocess si = subprocess.STARTUPINFO() si.dwFlags |= subprocess.STARTF_USESHOWWINDOW si.wShowWindow = subprocess.SW_HIDE subprocess.call('taskkill /F /IM exename.exe', startupinfo=si)
Menggunakan Bendera Penciptaan
Sebagai alternatif, anda boleh menetapkan bendera penciptaan panggilan subproses untuk melumpuhkan tetingkap secara eksplisit ciptaan:
import subprocess from ctypes import windll subprocess.call('taskkill /F /IM exename.exe', creationflags=windll.kernel32.CREATE_NO_WINDOW)
Melepaskan Proses Kanak-kanak
Untuk mengalihkan sepenuhnya proses anak daripada konsol, anda boleh menggunakan bendera DETACHED_PROCESS:
import subprocess from ctypes import windll subprocess.call('taskkill /F /IM exename.exe', creationflags=windll.kernel32.DETACHED_PROCESS)
Kaedah ini mengeluarkan pemegang konsol kanak-kanak dan menghalangnya daripada mewarisi pemegang konsol ibu bapa konsol.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencegah Windows Konsol daripada Muncul Apabila Menjalankan Perintah Sistem dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!