我正在尝试使用os.popen()传递python脚本的输出。这是我的python脚本:
sample.py
while(True):
print("hello")
python版本:3.6.7 操作系统:Ubuntu 18.04
我的脚本执行该过程:
import os
import types
def sample_function():
pipe = os.popen('python3 /home/gomathi/sample.py')
while(True):
a = pipe.readline()
yield a
s=sample_function()
for i in s:
print(i)
它对于上面的代码很好用。现在的问题是,我将 sample.py 更改如下:
sample.py
print("hello")
它只是在整个屏幕上打印空白,然后继续打印空白字符。我的代码出了什么问题?我的代码需要进行哪些更改才能适用于上述sample.py?
答案 0 :(得分:2)
您的新sample.py
结束了,但是您继续从管道中读取内容。所以你得到的是空字符串。
答案 1 :(得分:0)
使用具有相同功能subprocess
的{{1}}模块,并将输出和错误重定向到主.py文件的Popen
函数。
print