首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:捕获控制台中的控制台输出

Python:捕获控制台中的控制台输出
EN

Stack Overflow用户
提问于 2017-10-26 17:28:05
回答 1查看 49关注 0票数 0

假设我有myscript.py

代码语言:javascript
复制
while True:
    print("hi")
    time.sleep(1)

现在,在mainscript.py中作为子进程启动它:

代码语言:javascript
复制
sub = subprocess.Popen([sys.executable, "-u", myscript.py], creationflags=CREATE_NEW_CONSOLE, stdout=PIPE, bufsize=1)

现在我阅读了myscript.py的输出:

代码语言:javascript
复制
while sub.poll() == None:
    subm = sub.stdout.readline()
    print (subm)      #print for checking only

但只有当我没有创建新的控制台时,这才能起作用。但我需要这个控制台窗口。

如何捕获/访问另一个控制台窗口的输出?

任何帮助都将不胜感激。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-10-28 18:57:52

这对我有用。这就是你要找的东西吗?

代码语言:javascript
复制
import sys, subprocess
from subprocess import Popen, PIPE, CREATE_NEW_CONSOLE

p = subprocess.Popen([sys.executable, "-u", os.path.dirname(__file__) + '/myscript.py'], creationflags=CREATE_NEW_CONSOLE, bufsize=1)

if p.stdout:
    for line in iter(p.stdout.readline, b''):
        print line,
p.wait()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46960407

复制
相关文章

相似问题

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