将String从Java程序传递给Python程序

时间:2015-05-06 12:03:17

标签: java python

我想知道将Java程序中的String传递给Python程序的最简单方法是什么。原因是我使用samppipe从Web中提取一些文本,然后通过我的Java程序进行分析,但我还必须使用pattern.en进行一些语义搜索,这只能用于python。

我不需要从我的python程序中获取结果,只是我的Python程序可以获得String。

我首先考虑让我的python程序监听.txt文件,而java用String提供它,但我认为这样做太难了。

我在Windows 7上,我的Python版本是2.7.9。

编辑:我想我实际上并不是很清楚。理想情况下,我希望我的java代码运行我的python程序,该程序将收到字符串。

如果我可以做出类似的话,Graciela Runolfsdottir的第二个答案可能会成功:

String s = "string to analyse"
FileUtils.writeStringToFile(new File("test.txt"), s);

然后执行:python analyzer.py test.txt,但我不知道如何从java调用此命令。有可能吗?

3 个答案:

答案 0 :(得分:2)

实现这一目标的最简单方法(以及历史上的&#34;规范&#34;方式)是使用源程序(在您的情况下为Java程序)将字符串写入<b>hi</b>并从中读取stdout使用接收程序(python程序)。

要链接输入/输出,您可以使用"Command Redirection",特别是管道:

stdin

答案 1 :(得分:0)

您可以通过以下方式传递字符串:

  • 命令行参数(它不应该很长并且必须被转义)
  • 文件(只需将字符串保存到文件并将其文件名传递给Python应用程序)
  • STDIN(将您的字符串输出到Python程序的STDIN)

我认为最后一种方法在实施中很简单,你应该选择它。

答案 2 :(得分:0)

不同的方法:尝试使用jython。那可能你实际上在你的JVM上下文中运行python代码。

或者,如果您真的担心基于深刻的架构而拥有“可靠”的解决方案;考虑使用消息总线;就像ActiveMQ一样,它有Java和Python的客户端。