例如我运行一个脚本
os.execv('script.py',('',))
当我在docs中读到时,这个命令从你当前的脚本开始一个脚本,通过它的pid并重新设置它来运行script.py。所以我可以获得流程的pid。
问题如下:
运行execv之后我需要得到这个脚本的标准输出,我唯一知道的是进程的pid。有可能用python执行此操作吗?有什么建议 ?我只需要使用execv()
答案 0 :(得分:0)
os.execv
只是绑定到execve系统调用。你需要的是一个subprocess
模块:
import sys
import subprocess
proc = subprocess.Popen([sys.executable, 'script.py'],
stdout = subprocess.PIPE)
proc.wait()
print(proc.stdout.read())
答案 1 :(得分:0)
另一种可能的解决方案,将输出重定向到文件。
import os,sys
sys.stdout = open("./data.out","w")
os.dup2(sys.stdout.fileno(), 1)
os.execv('/usr/bin/python', ['python', './script.py'])