如何解决Python popen 从进程读取数据,但标准输出下降
我正在使用生成器 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 举报,一经查实,本站将立刻删除。