为了账号安全,请及时绑定邮箱和手机立即绑定

Python:Popen().stdout.peek() 挂起

Python:Popen().stdout.peek() 挂起

慕娘9325324 2021-06-13 08:21:06
我正在尝试将类似 REPL 的命令行程序集成到 Python 项目中。命令行程序接受一个输入字符串并返回一个输出字符串,它在单独运行时工作正常。问题是,当我尝试使用Popen().stdout.peek()或.read()时,它会挂起并且不产生输出。>>> p = Popen('Test.exe', stdin=PIPE, stdout=PIPE, stderr=PIPE)>>> p.stdin.write(bytes('message\n', 'utf-8'))8>>> p.stdin.flush()>>> p.stdout.peek()  # Hangs有趣的是,如果命令行程序也是用 Python 编写的,这确实有效,但是当使用我真正想使用的程序时,它会挂起。在命令行中手动运行时,这两个程序都按预期运行。我也不能使用,p.communicate('message')因为进程是有状态的,我需要执行多个命令。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 214 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号