我正在尝试在Python 2.7中使用Popen执行shell cmds。我可以获取标准输出并打印它,但是只能打印一次。当我尝试再次打印它或将输出变量重新分配给另一个时,它为空白。这是我的代码:
from subprocess import Popen, PIPE
p = Popen(['cd /home/pi/GDRIVE; drive push -quiet -ignore-conflict PiDocs'],shell=True, stdout=PIPE)
output = p.communicate()[0]
print output
if p.returncode != 0:
print p.returncode
print "Return code was not equal to 0"
print output
print "now reassigning output"
mailtext = output
print "print output again"
print output
print "mailtext is next"
print mailtext
else:
print p.returncode
print "Return code was equal to 0"
有效命令的结果(PiDocs是正确的文件夹名称):
0
Return code was equal to 0
如果命令无效(将PDocs用作不正确的文件夹名称),则结果:
'/PDocs' aka '/home/pi/GDRIVE/PDocs' doesn't exist locally nor remotely
8
Return code was not equal to 0
now reassigning output
print output again
mailtext is next
我将标准打印输出后,它将不会再次打印或分配给mailtext
并进行打印。有什么建议吗?