我有一些想在Python脚本中的数组变量上运行的J代码。Python数组只是一个有200个浮点数的变量。我知道内存映射文件,但这似乎是非常低的水平和技术。
有没有一种简单的方法可以从Python调用J函数或脚本而不退出shell,如:
import subprocess
subprocess.check_output(["echo function.ijs | ijconsole"])
使用这种方法,我首先需要将变量保存到一个临时文件中,然后J程序需要加载该文件。有更优雅的方式吗?
最佳答案
如果有一个字符串要将数据传递给子进程的输入,并且希望同时读取其输出,请使用Popen.communicate()
。
j_process = subprocess.Popen(["ijconsole"],
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
j_output, _ = j_process.communicate(j_input)
如果交互更复杂,可以使用“与
Popen.stdin
/Popen.stdout
通信”,但要小心-可能由于缓冲而死锁。关于python - 从Python调用J,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48549786/