我知道有很多关于这个话题的问题,但似乎没有一个问题能解决我所有的需求。
我的需求
<代码>H 111>控制台窗口中运行,即使在命令完成后也能看到应用程序的输出。H 212H 113它需要跨平台(Windows和Linux)H 214F 215
我想使用子处理模块。我已经尝试过使用选项CREATE_NEW_CONSOLE
subprocess.Popen(("git", "status"), close_fds=True, creationflags=subprocess.CREATE_NEW_CONSOLE | subprocess.STARTF_USESHOWWINDOW, shell=True)但是:
,
发布于 2019-12-03 08:40:50
一种方法是打开一个带有子进程的新控制台窗口,并在该窗口中运行命令。在Linux上,可以使用"-e“标志和命令来实现。
例如(基于https://stackoverflow.com/a/3531426)
x-terminal-emulator -e "bash -c \"git status; exec bash\""将打开默认终端的新窗口并运行命令。
bash -c "git status; exec bash"在那个窗户里。在Python中,这看起来就像
subprocess.Popen('x-terminal-emulator -e "bash -c \\"git status; exec bash\\""', shell=True)在最后运行"exec bash“将在控制台窗口中打开一个新的shell,并阻止它立即退出。
根据this answer,您可以在Windows上使用"start cmd /k“,然后运行命令。我还没试过,但大概是
subprocess.Popen('start cmd /k git status', shell=True)会成功的。
https://stackoverflow.com/questions/59152554
复制相似问题