ホームページ >バックエンド開発 >Python チュートリアル >Python でシステム コマンドを実行するときにコンソール ウィンドウがポップアップしないようにするにはどうすればよいですか?

Python でシステム コマンドを実行するときにコンソール ウィンドウがポップアップしないようにするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-26 21:48:12582ブラウズ

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

os.system() と subprocess.call() を使用してコンソールを非表示にする

os.system() または subprocess.call() を使用する) は、Python スクリプト内からシステム コマンドを実行する場合に便利です。ただし、これらの機能を実行するとコンソール ウィンドウがポップアップ表示されることが多く、これは望ましくない場合があります。この動作を抑制するには、いくつかの手法があります。

STARTUPINFO 構造体の使用

subprocess.STARTUPINFO クラスは、サブプロセスの起動動作を制御します。 STARTF_USESHOWWINDOW フラグを設定し、ショー ウィンドウ フラグとして SW_HIDE を指定すると、コンソール ウィンドウが作成されないようにすることができます。

import subprocess

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

作成フラグの使用

または、次のようにします。サブプロセス呼び出しの作成フラグを設定して、ウィンドウを明示的に無効にすることができます作成:

import subprocess
from ctypes import windll

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

子プロセスの切り離し

子プロセスをコンソールから完全に切り離すには、DETACHED_PROCESS フラグを使用できます:

import subprocess
from ctypes import windll

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

このメソッドは、子のコンソール ハンドルを削除し、親のコンソール ハンドルを継承しないようにします。コンソール。

以上がPython でシステム コマンドを実行するときにコンソール ウィンドウがポップアップしないようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。