gpt4 book ai didi

python - 如何捕获从另一个 python 脚本执行的 python 脚本的打印?

转载 作者:行者123 更新时间:2023-11-28 22:33:21 25 4
gpt4 key购买 nike

我在同一文件夹中有 2 个脚本 script1.pyscript2.py ,script1.py 使用 Popen 调用 script2.py(有关详细信息,请参见下面的代码),问题是来自 script2.py 的打印没有在 script1.py 中捕获,print outputprint error 没有在下面的代码中打印任何东西?我在这里错过了什么?如何从 script2.py 捕获打印件?

脚本1.py

import subprocess
from subprocess import Popen, PIPE, STDOUT
def func1 ():
cmd = "python script2.py"
proc = Popen(cmd.split(' '), stdout=PIPE, stderr=PIPE)
(output, error) = proc.communicate()
print output
print error

func1()
print "Done.."

脚本2.py

import sys
print "ERROR:port not detected"
sys.exit(29)

输出:-

C:\Dropbox>python script1.py
ERROR:port not detected


Done..

最佳答案

根据评论修改答案

在您对原始问题进行编辑之后,您的代码似乎可以正常工作。我只是将 output= 放在 print 语句的前面来检查。

import subprocess
from subprocess import Popen, PIPE, STDOUT
def func1 ():
cmd = "python script2.py"
proc = Popen(cmd.split(' '), stdout=PIPE, stderr=PIPE)
(output, error) = proc.communicate()
print "output=",output
print error

func1()
print "Done.."

** 输出:**

Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
output= ERROR:port not detected



Done..
>>>

关于python - 如何捕获从另一个 python 脚本执行的 python 脚本的打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40003483/

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