簡體   English   中英

從Python到Mathematica再回來

[英]From Python to Mathematica and back again

我寫了一個Python腳本,它產生一個輸出到文件的輸出。 這被Mathematica讀取為輸入文件,然后使用它來進行一些操作,最后返回另一個輸出文件。 反過來,最后一個文件應該由相同的初始Python腳本讀取,以執行更多操作。

我的問題是:最簡單(但有效)的方法是什么?

我將在下面寫一個(非常簡化的)我正在處理的例子。 我從我的python腳本python_script.py :這會生成一個保存在文件"arr.txt"的數組arr

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]

現在, "arr2.txt"必須由原始Python腳本讀取。 怎么可能這樣做? 具體如何我可以停止Python腳本,啟動Mathematica然后再回到Python腳本?

在這樣做的方式:

  • 將Mathematica代碼放入純文本文件中,例如make_arr.m
  • 使用Mathematica的命令行界面:
    • math -script make_arr.m
  • 從python中調用上面的subprocess模塊
    • subprocess.call(["math", "-script", "make_arr.m"])

(可選)您可以在Mathematica腳本中使用命令行參數:

file_name = $CommandLine[[4]]

進一步閱讀

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM