r - 使用 R 包“网状”查找源文件
问题描述
我正在处理一个R
包含多个文件夹的项目。工作目录是主脚本和一个名为的文件夹所在的src
位置。该文件夹包含两个python
脚本,一个名为test_function.py
,另一个名为test_script.py
.
我reticulate
在主脚本中使用包,并尝试使用该函数source_python( )
来调用python
脚本。代码如下所示:
# Main R script
library(reticulate)
source_python("test_function.py")
但是,我收到以下错误
py_run_file_impl(文件,本地,转换)中的错误:无法打开文件'test_func.py'(它存在吗?)
现在,工作目录看起来像这样:
setwd("C:/Users/.../testProject")
并且该功能source_python( )
仅在我移动到 python 脚本所在的位置时才有效
setwd("C:/Users/.../testProject/src")
然而我需要让它从主R
脚本所在的目录工作,因为这个R
项目将非常复杂并且需要多个源(其中一些将写入python
)
有什么建议么?谢谢!
解决方案
您可以使用该scriptName
软件包。例子:
脚本文件“~/Desktop/temp.r”:
library(scriptName)
library(reticulate)
x <- scriptName::current_filename()
print(dirname(x))
source_python(paste0(dirname(x), "/src/test_function.py"))
source("~/Desktop/temp.r")
输出:
[1] "script path is: "
[1] "/Users/thc/Desktop"
推荐阅读
- node.js - 如何不将多个数据保存到 mongodb 的集合中?
- mysql - MySQL GROUP BY 按周、月查询分组结果
- javascript - 我想分配一个变量两次,但只想在 javascript 中使用第一个
- python - 如何使用 .title() 遍历具有不同数据类型的字典值?
- java - 为什么验证不适用于 DTO 类型的对象,而仅适用于实体
- python - 为什么图表的标题和 x-label 都相同,即使我已经将它们包含在 for 循环中?
- python - 从 Django 中的 db 字段渲染 html
- php - 将 Android 应用 SQLLite 离线数据保存到 Live Mysql 数据库
- swift - 如何在 alamofire 中将 pdf 文件作为多部分表单数据上传?
- javascript - 如何从数据库而不是 credential.json 加载 AWS Config