问题描述
我正在使用生成器 getBytes
从进程 STDOUT 中检索字节(STDOUT 的输出速率约为 5MB/s)
问题是,当我的程序花时间处理这个(几秒钟)时,部分 STDOUT 似乎已被删除。 我曾尝试在 subprocess.Popen 调用中将 bufsize 设置为一个大值 (100000000),但这似乎并没有解决问题。
def getBytes():
# command = "command that outputs data"
process = subprocess.Popen(command,stdout=subprocess.PIPE)
for c in iter(lambda: process.stdout.read(1),b''):
yield(c)
mybytes = getBytes()
buffer = []
for b in mybytes:
buffer.append(b)
if len(buffer)>=MIN_BUFFER:
# some processing that may take a few seconds
# after that,drops in STDOUT
buffer = []
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)