Python 在Jupyter笔记本中设置自动R脚本
我有一个R脚本,它执行很多繁重的操作,偶尔还会崩溃 我希望使用Python运行它,如果失败,请重试(尝试次数上限合理) 理想情况下,我会在Python3.x中这样做 这是我目前的代码:Python 在Jupyter笔记本中设置自动R脚本,python,r,python-3.x,Python,R,Python 3.x,我有一个R脚本,它执行很多繁重的操作,偶尔还会崩溃 我希望使用Python运行它,如果失败,请重试(尝试次数上限合理) 理想情况下,我会在Python3.x中这样做 这是我目前的代码: #! /usr/bin/Rscript (I added this code to the top of my file) subprocess.call("/pathto/MyrScript.r") 我的脚本打印出一堆有用的诊断信息 这就是我希望能够做到的: 从Python启动脚本[完成
#! /usr/bin/Rscript (I added this code to the top of my file)
subprocess.call("/pathto/MyrScript.r")
我的脚本打印出一堆有用的诊断信息
这就是我希望能够做到的:
try:
subprocess.call("/pathto/MyrScript.r")
except:
i+=1
if i > 5:
print("Tried >5 times")
else:
subprocess.call("/pathto/MyrScript.r")
你能帮我讲讲#2吗?谢谢 通常在shell中,如果执行成功,则返回0。任何大于0的返回码都表示某种类型的错误 您可以在这里阅读有关bash输出的更多信息(假设您正在使用linux env): 因此,如果子流程调用成功,它应该返回0
output=1
同时输出=0:
尝试:
输出=子流程调用('fileaddress')
除:
i+=1
打印(f'trued{i}次)
您可以将参数传递给R脚本,但您必须查看R脚本以接受来自终端的参数。实际上,您不是从python传递参数,而是通过子流程模块,python正在执行bash命令。因此,如果您能够使用参数从终端执行R脚本,那么您可以使用子流程执行相同的R脚本,但将命令和参数作为列表传递,例如:
subprocess.call(['ls','-l']
我可以将python中的参数传递到R脚本中吗?我最终使用了R脚本命令并从R终端运行