Python 获取脚本输出,现在只有文件的 pid

Python get script output with now only the pid of file

例如我运行一个脚本

os.execv('script.py',('',))

正如我在文档中所读,此命令通过获取当前脚本的 pid 并将其重新分配给 运行 script.py 来启动脚本。所以我可以获得进程的pid。 问题如下: 在 运行ning execv 之后我需要得到这个脚本的标准输出,我唯一知道的就是进程的 pid。是否可以使用 python 执行此操作?有什么建议么 ?我只需要使用 execv()

os.execv 只是绑定到 execve 系统调用。您需要的是 subprocess 模块:

import sys
import subprocess

proc = subprocess.Popen([sys.executable, 'script.py'],
                        stdout = subprocess.PIPE)
proc.wait()
print(proc.stdout.read())

https://docs.python.org/2/library/subprocess.html

将输出重定向到文件的另一种可能解决方案。

import os,sys
sys.stdout = open("./data.out","w")
os.dup2(sys.stdout.fileno(), 1)
os.execv('/usr/bin/python', ['python', './script.py'])