如何制作subprocess.Popen检索整个标准输出?

时间:2016-05-15 16:42:25

标签: python subprocess

代码如下(在python 2.7提示符下)

import subprocess as sp

a = sp.Popen(['bash', '-c', 'ssh [REDACTED] cat text.txt'],
             stdout=sp.PIPE, stderr=sp.PIPE)    
print(a.communicate()[0])

我希望这个程序可以打印整个“text.txt”文件,但是它缺少最后几行。

文件text.txt位于远程服务器中,我认为这是它的要点。如果我检索文件然后在本地执行subprocess.Popen,它会按预期工作。

为什么会发生这种情况?如何解决?

注意:如果我使用check_output

,结果是一样的

1 个答案:

答案 0 :(得分:0)

根据documentation for communicate,如果数据量非常大,则不应使用该命令。尝试this之类的内容,看看是否能解决您的问题。