Maison >développement back-end >Tutoriel Python >Comment puis-je masquer la fenêtre de la console lors de l'exécution d'appels système en Python ?

Comment puis-je masquer la fenêtre de la console lors de l'exécution d'appels système en Python ?

DDD
DDDoriginal
2024-11-17 21:56:02700parcourir

How Can I Hide the Console Window When Running System Calls in Python?

Masquer la fenêtre de la console dans les appels système

Lors de l'utilisation de fonctions telles que os.system() ou subprocess.call() pour exécuter des commandes système , une fenêtre de console peut apparaître momentanément. Cela peut être indésirable dans certaines situations.

Pour atténuer cela, le processus STARTUPINFO du sous-processus fournit une option pour masquer la fenêtre de la console. Voici comment :

import subprocess

si = subprocess.STARTUPINFO()
si.dwFlags |= subprocess.STARTF_USESHOWWINDOW
#si.wShowWindow = subprocess.SW_HIDE # default
subprocess.call('taskkill /F /IM exename.exe', startupinfo=si)

Vous pouvez également désactiver la création de fenêtres à l'aide d'indicateurs de création :

subprocess.call('taskkill /F /IM exename.exe', creationflags=subprocess.CREATE_NO_WINDOW)

Les méthodes ci-dessus suppriment la création de fenêtres de console, mais le processus possède toujours des handles standard pour la console I. /O.

Pour éliminer complètement la console, utilisez le DETACHED_PROCESS flag:

subprocess.call('taskkill /F /IM exename.exe', creationflags=subprocess.DETACHED_PROCESS)

Dans ce cas, les handles standard de l'enfant sont annulés, mais vous pouvez les rediriger vers d'autres fichiers ou tuyaux ouverts.

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!

Déclaration:
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