我编写了一个Python脚本,它生成一个输出到文件的输出。 这被Mathematica读取为输入文件,然后使用它来进行一些操作,最后返回另一个输出文件。 反过来,最后一个文件应该由相同的初始Python脚本读取,以执行更多操作。
我的问题是:最简单(但有效)的方法是什么?
我将在下面写一个(非常简化的)我正在处理的例子。我从我的python脚本python_script.py
开始:这会生成一个保存在文件arr
"arr.txt"
import numpy as np
arr = np.arange(9).reshape(3,3)
np.savetxt('arr.txt', arr, delimiter=' ')
此文件由我的Mathematica笔记本nb_Mathematica.nb
读取。例如,这可以生成另一个数组,然后保存在另一个文件"arr2.txt"
file = Import["arr.txt","Table"]
b = ArrayReshape[file, {3,3}]
c = {{1,1,1},{1,1,1},{1,1,1}}
d = b + c
Export["arr2.txt", d]
现在必须由原始Python脚本读取"arr2.txt"
。怎么可能这样做?我如何能够停止Python脚本,启动Mathematica然后再回到Python脚本?
答案 0 :(得分:3)
在此过程中:
make_arr.m
math -script make_arr.m
subprocess
模块
subprocess.call(["math", "-script", "make_arr.m"])
您可以选择在Mathematica脚本中使用命令行参数:
file_name = $CommandLine[[4]]