0

我想知道如何打开一个 R 脚本并与之交互(例如,发送字符串、整数等)。尽管我以前没有使用过它,但 subprocess 似乎是一种合理的方法。

到目前为止,我有

process = subprocess.Popen(['/path/to/Rscript --no-save path/to/script.R'], stdout=subprocess.PIPE, stdin=subprocess.PIPE, shell=True)

这似乎在打开 script.R 时是成功的,但是在我的脚本中,我提示用户输入一个整数,我无法完全弄清楚如何做到这一点。我试过了:

process.communicate(input=1)[0]

但我似乎在叫错树。子进程在没有收到此输入的情况下关闭。

编辑:此时 Rpy 可能不是一个好的选择,因为这个脚本的用户不一定有权访问该模块及其依赖项。

4

2 回答 2

2

试试 PypeR 吗?

通过管道在 python 中使用 R 是一个很棒的接口。

于 2013-04-04T03:07:47.440 回答
1

编辑2

那个怎么样?

process = subprocess.Popen(['/path/to/Rscript', '--no-save', 'path/to/script.R'], stdout=subprocess.PIPE, stdin=subprocess.PIPE)

编辑1

您只能通过标准输入和标准输出在进程之间通信字符串。

process.communicate("1\n")能帮到你吗?

于 2013-04-02T14:03:56.297 回答