Skip to content

Instantly share code, notes, and snippets.

@nitely
Created October 10, 2012 00:54
Show Gist options
  • Save nitely/3862493 to your computer and use it in GitHub Desktop.
Save nitely/3862493 to your computer and use it in GitHub Desktop.
Python, subprocess: hide console on Windows
import subprocess
IS_WIN32 = 'win32' in str(sys.platform).lower()
def subprocess_call(*args, **kwargs):
#also works for Popen. It creates a new *hidden* window, so it will work in frozen apps (.exe).
if IS_WIN32:
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags = subprocess.CREATE_NEW_CONSOLE | subprocess.STARTF_USESHOWWINDOW
startupinfo.wShowWindow = subprocess.SW_HIDE
kwargs['startupinfo'] = startupinfo
retcode = subprocess.call(*args, **kwargs)
return retcode
@Prx001
Copy link

Prx001 commented Oct 3, 2020

How to use this function? Argument?
Please explain more.
Thanks

@nitely
Copy link
Author

nitely commented Oct 3, 2020

Well, it receives and passes all parameters to subprocess.call, so it works the same way. See https://docs.python.org/3/library/subprocess.html#subprocess.call

Apparently, the only thing that does is to change/add the startupinfo so the window is hidden in Win32.

I wrote this 8 years ago for Python 2 (I think). Maybe Python 3 fixed this.

@richbobo
Copy link

Thanks for this; really helped me today! Won't need it for Python 3, but not there quite yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment