我想要在后台打开一个进程并与之交互,但是这个进程在Linux和Windows中都应该是不可见的。在Windows中,你需要使用STARTUPINFO进行一些操作,而这在Linux中不适用:
ValueError:startupinfo仅受支持于Windows平台
是否有比为每个操作系统创建单独的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)
STARTF_SHOWWINDOW
,那么你也需要初始化startupinfo
的wShowWindow
成员为SW_*
常数中的一个。该方法依赖于运行的程序实际上对wShowWindow
标志执行操作;但并非必须这样做。 - Greg Hewgill