我有以下Python代码块(运行v2.7),当我处理大型(几GB)文件时,这些代码会导致抛出MemoryError
异常:
myProcess = Popen(myCmd, shell=True, stdout=PIPE, stderr=PIPE)
myStdout, myStderr = myProcess.communicate()
sys.stdout.write(myStdout)
if myStderr:
sys.stderr.write(myStderr)
在读取documentation to Popen.communicate()
时,似乎有一些缓冲正在进行:
备注读取的数据缓存在内存中,因此如果数据大小很大或不受限制,请不要使用此方法。
有没有办法禁用这种缓冲,或者在进程运行时强制定期清除缓存?
在Python中运行将to级数据流式传输到stdout
的命令时,应该使用什么替代方法
我需要注意的是,我需要处理输出和错误流。
https://stackoverflow.com/questions/6880090
复制相似问题