您需要xreadlines,它可以从文件读取行而不将整个文件加载到内存中。
编辑 :
现在,我看到了您的问题,您只需要从
Popen对象中获取stdout管道即可:
cat = subprocess.Popen(["hadoop", "fs", "-cat", "/path/to/myfile"], stdout=subprocess.PIPE)for line in cat.stdout: print line

您需要xreadlines,它可以从文件读取行而不将整个文件加载到内存中。
编辑 :
现在,我看到了您的问题,您只需要从
Popen对象中获取stdout管道即可:
cat = subprocess.Popen(["hadoop", "fs", "-cat", "/path/to/myfile"], stdout=subprocess.PIPE)for line in cat.stdout: print line