栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

我可以将io.BytesIO()流传输到Python中的subprocess.popen()吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

我可以将io.BytesIO()流传输到Python中的subprocess.popen()吗?

正如@falsetru所说,您不能

BytesIO()
直接流对象;您需要先从中获取一个字节串。这意味着
stream

调用
stream.getvalue()
传递给 之前 ,所有内容都应已经写入
process.communicate()

如果要 流传输 而不是一次提供所有输入,则可以删除

BytesIO()
对象并直接写入管道:

from subprocess import Popen, PIPEprocess = Popen(['command', 'arg1'], stdin=PIPE, bufsize=-1)someStreamCreatingProcess(stream=process.stdin) # many `stream.write()` insideprocess.stdin.close() # done (no more input)process.wait()

someStreamCreatingProcess()
在完成写入流之前,不应返回。如果立即返回,则应
stream.close()
在将来的某个时间调用(删除
process.stdin.close()
代码):

from subprocess import Popen, PIPEprocess = Popen(['command', 'arg1'], stdin=PIPE, bufsize=-1)someStreamCreatingProcess(stream=process.stdin) # many `stream.write()` insideprocess.wait() # stream.close() is called in `someStreamCreatingProcess`


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/661901.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号