首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不同控制台中的subprocess.Popen

不同控制台中的subprocess.Popen
EN

Stack Overflow用户
提问于 2013-04-09 18:43:11
回答 3查看 60.5K关注 0票数 34

我希望这不是复制品。

我正在尝试使用subprocess.Popen()在单独的控制台中打开一个脚本。我尝试过设置shell=True参数,但没有成功。

我在64位的Windows7上使用32位的Python 2.7。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-09 18:44:05

代码语言:javascript
运行
复制
from subprocess import *

c = 'dir' #Windows

handle = Popen(c, stdin=PIPE, stderr=PIPE, stdout=PIPE, shell=True)
print handle.stdout.read()
handle.flush()

如果不使用shell=True,则必须为Popen()提供一个列表,而不是命令字符串,例如:

代码语言:javascript
运行
复制
c = ['ls', '-l'] #Linux

然后在没有外壳的情况下打开。

代码语言:javascript
运行
复制
handle = Popen(c, stdin=PIPE, stderr=PIPE, stdout=PIPE)
print handle.stdout.read()
handle.flush()

这是您可以从Python调用子流程的最手动和最灵活的方式。如果您只想要输出,请转到:

代码语言:javascript
运行
复制
from subproccess import check_output
print check_output('dir')

要打开新的控制台GUI窗口并执行X:

代码语言:javascript
运行
复制
import os
os.system("start cmd /K dir") #/K remains the window, /C executes and dies (popup)
票数 8
EN

Stack Overflow用户

发布于 2013-12-16 21:49:02

要在不同的控制台中打开,请执行以下操作(在Win7 /Python3上测试):

代码语言:javascript
运行
复制
from subprocess import Popen, CREATE_NEW_CONSOLE

Popen('cmd', creationflags=CREATE_NEW_CONSOLE)

input('Enter to exit from Python script...')

相关

How can I spawn new shells to run python scripts from a base python script?

票数 42
EN

Stack Overflow用户

发布于 2016-08-12 03:22:20

在Linux上,shell=True可以做到这一点:

command = 'python someFile.py' subprocess.Popen('xterm -hold -e "%s"' % command)

不能像下面描述的那样使用gnome终端:

https://bbs.archlinux.org/viewtopic.php?id=180103

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15899798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档