Comment puis-je empêcher les fenêtres de la console d'apparaître lors de l'exécution de commandes système en Python ?

Barbara Streisand
Libérer: 2024-11-26 21:48:12
original
483 Les gens l'ont consulté

How Can I Prevent Console Windows from Popping Up When Running System Commands in Python?

Masquer la console avec os.system() et subprocess.call()

Utiliser os.system() ou subprocess.call( ) peut être pratique pour exécuter des commandes système à partir de scripts Python. Cependant, ces fonctions entraînent souvent l'apparition d'une fenêtre de console, ce qui peut s'avérer indésirable. Il existe plusieurs techniques pour supprimer ce comportement.

Utilisation de la structure STARTUPINFO

La classe subprocess.STARTUPINFO permet de contrôler le comportement de démarrage des sous-processus. En définissant l'indicateur STARTF_USESHOWWINDOW et en spécifiant SW_HIDE comme indicateur de fenêtre d'affichage, vous pouvez empêcher la création de la fenêtre de console :

import subprocess

si = subprocess.STARTUPINFO()
si.dwFlags |= subprocess.STARTF_USESHOWWINDOW
si.wShowWindow = subprocess.SW_HIDE
subprocess.call('taskkill /F /IM exename.exe', startupinfo=si)
Copier après la connexion

Utilisation des indicateurs de création

Alternativement, vous pouvez définir les indicateurs de création de l'appel du sous-processus pour désactiver explicitement la fenêtre création :

import subprocess
from ctypes import windll

subprocess.call('taskkill /F /IM exename.exe', 
                creationflags=windll.kernel32.CREATE_NO_WINDOW)
Copier après la connexion

Dissocier le processus enfant

Pour détacher complètement le processus enfant de la console, vous pouvez utiliser l'indicateur DETACHED_PROCESS :

import subprocess
from ctypes import windll

subprocess.call('taskkill /F /IM exename.exe', 
                creationflags=windll.kernel32.DETACHED_PROCESS)
Copier après la connexion

Cette méthode supprime les handles de la console de l'enfant et l'empêche d'hériter de la console du parent.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal