end*_*ith 37 python linux windows subprocess cross-platform
我想在后台打开一个进程并与之交互,但这个进程在Linux和Windows中都应该是不可见的.在Windows中,您必须使用STARTUPINFO执行某些操作,而这在Linux中无效:
ValueError:仅在Windows平台上支持startupinfo
有没有比为每个操作系统创建单独的Popen命令更简单的方法?
if os.name == 'nt':
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
proc = subprocess.Popen(command, startupinfo=startupinfo)
if os.name == 'posix':
proc = subprocess.Popen(command)
Run Code Online (Sandbox Code Playgroud)
Anu*_*yal 37
你可以减少一行:)
startupinfo = None
if os.name == 'nt':
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
proc = subprocess.Popen(command, startupinfo=startupinfo)
Run Code Online (Sandbox Code Playgroud)
goe*_*tor 12
请注意:对于Python 2.7,我必须使用subprocess._subprocess.STARTF_USESHOWWINDOW
而不是subprocess.STARTF_USESHOWWINDOW
.