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

Barbara Streisand
リリース: 2024-11-26 21:48:12
オリジナル
482 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート