【发布时间】:2013-04-02 13:30:34
【问题描述】:
我想知道如何打开一个 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 可能不是一个好的替代方案,因为此脚本的用户不一定有权访问该模块及其依赖项。
【问题讨论】:
-
process.communicate(input=1)的结果是什么? -
对 - 好问题,我应该指定我看到 no 可见输出是由于 process.communicate(input=1)
标签: python r subprocess