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

从管道读取 Python 标准输入,不阻塞空输入

从管道读取 Python 标准输入,不阻塞空输入

侃侃无极 2021-09-01 19:31:02
我试图在从管道接收时读取 Python 脚本中的 stdin。我使用了这些行:for line in sys.stdin:     print line并运行脚本: echo "test" | script.py到目前为止它工作正常。但是,如果我不使用管道,程序就会坚持for命令。这意味着调用:./script.py将使脚本不起作用。我怎样才能解决这个问题?
查看完整描述

3 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

编辑:在这种情况下KeyboardInterrupt,您显然甚至不希望它读取行或句柄,因此您需要做的是检查 empty stdin。检查您是否是终端并按编辑后的示例所示通过。


sys.stdin是类文件。尝试:


if not sys.stdin.isatty():

    data = sys.stdin.readlines()

    # Do something with data

如果你没有运行它,stdin我认为它不会像以前那样挂起......因为sys.stdin它将是空的。然后该功能应继续。


查看完整回答
反对 回复 2021-09-01
  • 3 回答
  • 0 关注
  • 211 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信