首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scala流程的流标准输出

scala流程的流标准输出
EN

Stack Overflow用户
提问于 2017-03-17 18:23:09
回答 1查看 550关注 0票数 8

我使用scala进程来启动python程序,并使用ProcessLogger从python程序中捕获stdout。我看到python程序中的print语句只有在python程序完成后才会打印出来。是否有方法在执行python print语句时对其进行流处理?

代码语言:javascript
复制
import scala.sys.process.{ProcessLogger, _}

object TestProcessStdOut {
  def main(args: Array[String]) {
    var cmd = "python python_test.py";
    val process = Process(cmd).run(new ProcessLogger {
      override def out(s: => String) = println(s)

      override def buffer[T](f: => T) = ???

      override def err(s: => String) = ???
    })
  }
}

python_test.py

代码语言:javascript
复制
import time

print("print data 1")
time.sleep(2)
print("print data 2")
time.sleep(2)
print("print data 3")
time.sleep(2)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-18 01:38:55

告诉python不要用-u缓冲scala中的输出将有助于您:

代码语言:javascript
复制
var cmd = "python -u python_test.py"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42864697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档