gpt4 book ai didi

scala - 从Scala Process流标准输出

转载 作者:行者123 更新时间:2023-12-04 12:45:53 24 4
gpt4 key购买 nike

我正在使用scala Process启动python程序,并使用ProcessLogger从python程序捕获stdout。我看到python程序中的print语句仅在python程序完成后才打印。有没有办法在执行它们时流式处理python打印语句?

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
import time

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

最佳答案

告诉python不要使用-u在scala中缓冲您的输出,这将帮助您:

var cmd = "python -u python_test.py"

关于scala - 从Scala Process流标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42864697/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com