Python脚本从自定义R包中的`inst`文件夹读取csv文件

erhoui1w  于 2023-04-27  发布在  Python
关注(0)|答案(1)|浏览(105)

我正在构建一个R包,它使用Python脚本加载内部数据。py-script(load_csv.py)和data(data.csv)都位于包目录的inst/文件夹中。

import pandas as pd
my_df = pd.read_csv("inst/data.csv")

这个想法是当R函数(rfunction)被调用时run the py-script

rfunction <- function() {
          reticulate::py_run_file(system.file("load_csv.py", package = "mypkg"))
}

在构建包并调用r-function rfunction()后,我得到以下错误:
错误:FileNotFoundError:[错误2]没有这样的文件或目录:'inst/data.csv'
我该如何解决这个错误呢?是否可以在py-script中放置一个系统调用(类似于R中的system.file)?

bwntbbo3

bwntbbo31#

我对R不太了解,但我猜这是由于python脚本没有在预期的目录中执行造成的。
我假设您的python文件位于包的inst文件夹中。

import os
import pandas as pd 

datafile = os.sep.join((
    os.path.dirname(__file__), # this gives the directory in which the python file is located, i.e. <package>/inst/
    "data.csv"
))

my_df = pd.read_csv(datafile)

相关问题