python - 带有隐藏窗口的跨平台子进程

我想在后台打开一个进程并与之交互,但是这个进程在 Linux 和 Windows 中都应该是不可见的。在 Windows 中,您必须使用 STARTUPINFO 做一些事情,而这在 Linux 中无效:

ValueError: startupinfo is only supported on Windows platforms

有没有比为每个操作系统创建单独的 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)    

最佳答案

你可以减少一行:)

startupinfo = None
if os.name == 'nt':
    startupinfo = subprocess.STARTUPINFO()
    startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
proc = subprocess.Popen(command, startupinfo=startupinfo)

https://stackoverflow.com/questions/1016384/

相关文章:

linux - qstat 和长作业名称

linux - 需要对 Linux bash 内置 exec 命令行为的解释

c - 为什么在 Linux 中使用 select

linux - 在家学习内核黑客和嵌入式开发?

linux - 使用 Linux 加载程序时 ldconfig 错误 :"is not a symb

linux - 应用程序如何在运行时解析为不同版本的共享库?

linux - 让 Tk 看起来像一个原生 Linux 应用程序

linux - 跨多台计算机管理用户配置文件

linux - RealUID,保存的 UID,有效的 UID。这是怎么回事?

c - Linux内核代码中的 "EXPORT_SYMBOL"是什么意思?