我有一个 R 脚本,可以绘制一些图。我希望能够从 python 执行这个脚本。
我首先尝试:
import subprocess
subprocess.call("/.../plottingfile.R", shell=True)
这给了我以下错误:
/bin/sh: /.../plottingfile.R: Permission denied
126
我不知道126这个数字意味着什么。我的所有文件都在桌面上,因此我认为不需要任何特殊权限?我认为这个错误可能与 cwd = none 有关,但我改变了这一点,但仍然有错误。
接下来我尝试了以下操作:
subprocess.Popen(["R --vanilla --args </.../plottingfile.R>"], shell = True)
但这也给了我一个错误:
/bin/sh: Syntax error: end of file unexpected.
最近我尝试过:
subprocess.Popen("konsole | /.../plottingfile.R", shell = True)
这打开了一个新的 konsole 窗口,但没有运行 R 脚本。另外,我收到以下错误:
/bin/sh: /.../plottingfile.R: Permission denied
Thanks.
首先,确保您的 platttingfile.R 脚本位于您可以访问的位置。通常它是同一个目录。
我在互联网上读到有一个实用程序称为RScript
用于执行R
来自命令行的脚本。因此,为了运行该脚本,您可以像这样使用 python:
import subprocess
retcode = subprocess.call(['/path/to/RScript','/path/to/plottingfile.R'])
这将返回retcode
成功完成后为 0。如果您的plottingfile.R 返回某种输出,它将被抛出到 STDOUT 上。如果它拉起一些 GUI,那么它就会出现。
如果你想捕获 stdout 和 stderr,你可以这样做:
import subprocess
proc = subprocess.Popen(['/path/to/RScript','/path/to/plottingfile.R'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = proc.communicate()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)