繁体   English   中英

通过Python子进程与R脚本进行交互

[英]Interacting with R script via Python subprocess

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

到目前为止,我有

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目前可能不是一个很好的选择,因为此脚本的用户不一定会访问该模块及其依赖项。

尝试PypeR吗?

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

编辑2

那个怎么样?

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

编辑1

您只能通过stdin和stdout在进程之间交换字符串。

process.communicate("1\\n")对您有帮助吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM