【发布时间】:2012-07-04 11:32:44
【问题描述】:
我正在从 python 脚本调用 subprocess.Popen,然后调用通信
process = subprocess.Popen(cmds, shell=shell, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
stdout, stderr = process.communicate()
这个问题是标准输出被缓冲并且只会捕获一定数量的字符。
问题是,我怎样才能获得我生成的进程的完整标准输出和完整标准错误?
【问题讨论】:
-
你应该把所有的进程都拿出来&错误。可以扔样品吗?
-
我参考了部分文档docs.python.org/library/subprocess.html 注意读取的数据是在内存中缓冲的,所以如果数据量很大或没有限制,请不要使用此方法。输出是太大而无法在线发布的编译我将示例放在eng.utah.edu/~rweber/python_out.txt
-
只要不耗尽系统内存(或出现超出python字符串最大长度的错误)就会得到所有输出
-
我会再试一次,看看是否抛出了错误,但我得到了很多输出。
标签: python subprocess