python - 如何使用 scala 进程实用程序发送 EOF
问题描述
我想从一个必须接收可能无限长的字符串的 scala 程序内部启动一个 python 程序。因此,不可能将其作为 cmd 参数传递。
我的解决方案是通过标准流传输数据。但是,我找不到工作 bash 代码的 scala 版本:
bash 代码:
#/bin/bash
var="SOME REALLY LONG STRING THAT IS SEND TO THE PYTHON PROGRAM"
echo "$var" | ./readUntilEOF.py
斯卡拉代码:
import sys.process._
object main {
def main(args : Array[String]) : Unit = {
val cmd = "./readUntilEOF.py"
val string = "SOME REALLY LONG STRING THAT IS SEND TO THE PYTHON PROGRAM"
print("I am starting to send stuff...")
val resultString = (string #| cmd.!!).!!
print(resultString)
}
}
读取UntilEOF.py:
#!/usr/bin/python3
import sys
if __name__ == "__main__":
read = sys.stdin.read()
print(read)
运行 bash 命令的输出:
#> ./scalaBashEquivalent.sh
SOME REALLY LONG STRING THAT IS SEND TO THE PYTHON PROGRAM
运行 scala 代码的输出:
#> scala scala.sc
I am starting to send stuff...
/* and then it never terminates */
解决方案
推荐阅读
- c++ - 我的代码中有什么错误。我尝试在课堂上使用数组但出现逻辑错误
- c++ - 尝试使用 VS2015 和 addrinfoW 返回唯一指针时堆栈溢出
- javascript - 第一次调用更改状态的函数不会更新任何字段
- git - 当“git push”到 git Gogs 存储库时,如何从服务器调用脚本?
- sql-server - 如何仅对总和大于 SQL 查询的那些进行平均
- java - 从 bean 抛出的异常:java.lang.NoClassDefFoundError: com/auth0/jwt/algorithms/Algorithm
- android - 无法解析地图符号
- java - Jetty 代理 servlet 路由多个请求
- sql - 如何在一页中将 SQL 数据库中的 ER 图打印为 pdf?
- javascript - 用于拉取多个视频视图的 Google 脚本编辑器代码