gpt4 book ai didi

python - Popen 与 PIPE 通信不捕获进程的所有输出

转载 作者:太空宇宙 更新时间:2023-11-04 01:38:18 24 4
gpt4 key购买 nike

我正在尝试运行 python 脚本并捕获它的输出。似乎在第一行输出之后它重定向到控制台而不是我的字符串。 Manage.py 是用于管理 Django 项目的命令行实用程序,例如启动生产服务器或运行单元测试。

这是我的代码:

import os, string, datetime
from subprocess import Popen, PIPE

def runProcess(command, parameters):
process = Popen([command]+parameters, stdout=PIPE)
output=process.communicate()[0]
return output

testStatus=runProcess('python',['manage.py','test','coffeebean'])

print ("*****Own output*****")
print(testStatus)

这是输出:

Ran 1 test in 0.000s

OK
*****Own output*****
Creating test database for alias 'default'...
Destroying test database for alias 'default'...

为什么没有捕捉到第一行?

最好的问候,丹尼尔

最佳答案

因为它们被写入 stderr ,不是标准输出。尝试

def runProcess(command, parameters):
process = Popen([command]+parameters, stdout=PIPE,stderr=PIPE)
return process.communicate()

out,err =runProcess('python',['manage.py','test','coffeebean'])

print ("*****Own output*****")
print(out)
print ("*****Own error output*****")
print(err)

关于python - Popen 与 PIPE 通信不捕获进程的所有输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7647106/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com