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())
将输出重定向到文件的另一种可能解决方案。
import os,sys
sys.stdout = open("./data.out","w")
os.dup2(sys.stdout.fileno(), 1)
os.execv('/usr/bin/python', ['python', './script.py'])
例如我运行一个脚本
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())
将输出重定向到文件的另一种可能解决方案。
import os,sys
sys.stdout = open("./data.out","w")
os.dup2(sys.stdout.fileno(), 1)
os.execv('/usr/bin/python', ['python', './script.py'])