我是python的新手。我想做的是使用subprocess.Popen或subprocess.call将变量从python传递到imagej宏,但是我对如何形成所需的参数感到困惑。我搜索了所有帖子,但没有找到任何地方。
我尝试了几种不同的方式,例如:
subprocess.Popen(["C://Users//user//Desktop//ij150-win-jre6//ImageJ.exe", "C://Users//user//Desktop//ij150-win-jre6//plugins//test.ijm"], stdin=PIPE, --p)
subprocess.Popen(["C://Users//user//Desktop//ij150-win-jre6//ImageJ.exe", "C://Users//user//Desktop//ij150-win-jre6//plugins//test.ijm"], p)
subprocess.Popen(["C://Users//user//Desktop//ij150-win-jre6//ImageJ.exe", "C://Users//user//Desktop//ij150-win-jre6//plugins//test.ijm", p])
下面是python中的代码
import subprocess
p="test"
subprocess.Popen(["C://Users//name//Desktop//ij150-win-jre6//ImageJ.exe", "C://Users//name//Desktop//ij150-win-jre6//plugins//test.ijm"], stdin=PIPE, --p)
下面是来自imagej的代码
function testing(p)
{
print (p);
}
我已经尝试了上述几种方法,但是不断收到诸如“位置参数跟随关键字参数”和“'str'对象没有属性'fileno'”之类的错误。我怀疑在imagej端编码可能是错误的,但我不确定如何。我只尝试打印(p),但是在imagej中发生了错误。
基本上我希望imagej宏读取python提供的变量(在本例中为'p'),然后在imagej中打印出该变量。 有人可以帮我吗?
谢谢。
答案 0 :(得分:0)
经过多次尝试和谷歌搜索,我终于找到了答案。调用imagej程序和脚本以及将变量传递给脚本的python代码如下:
process = subprocess.Popen('imagej.exe --console -macro script.ijm variable', stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
为了使script.ijm接收自变量,脚本必须具有以下行:
Input = getArgument();
现在我正试图找出如何将script.ijm输出信息输出到python。