Centos版本:7.3 , Python版本: 3.6.7
代码如下
p = subprocess.Popen(['/usr/bin/python3.6','test2.py'],stdout=subprocess.PIPE)
for line in p.stdout:
print(line.decode("utf-8"))
----------
#test2.py
import time
for x in range(5):
print(x)
time.sleep(1)
在windows下可以正常实时读取,centos下则会一起读取后,直接返回最终结果。
尝试过以下方式1:
while True:
buff = p.stdout.readline()
if buff == '' and p.poll() != None:
break
else:
print(buff)
方式2:
print(p.communicate()[0])
均无效,请求各位大佬帮助,也可以测试一下是否问题有重现。
搞定了,加个-u参数即可