You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Golem框架的Shiny应用中添加外部服务器的TXT配置文件

Golem框架中私有项目信息TXT文件的放置方案及实践示例

一、标准放置位置

在Golem框架里,这类存储项目路径、配置信息的TXT文件,统一放在项目根目录的inst/文件夹下,推荐细分到inst/extdata/子目录——这是Golem官方指定的外部数据/配置文件存放位置,打包成应用时会被自动包含,避免路径失效问题。

  • 如果有分类需求,也可以在inst/下自定义子目录(比如inst/project_configs/),只要后续路径引用对应上即可。

二、路径引用的修正方法

你之前硬编码的"data/data1.txt"只适用于普通Shiny项目,在Golem中必须用system.file()函数获取正确路径,适配打包后的结构变化。示例代码:

# 替换成你的Golem项目实际包名
path_to_data1 <- system.file("extdata", "data1.txt", package = "your_golem_app")
path_to_data2 <- system.file("extdata", "data2.txt", package = "your_golem_app")

三、辅助函数的调整及完整示例

你的原有函数存在几处拼写错误(比如path_worj、names[ind]),结合Golem路径方式修正后的完整代码:

# 获取TXT文件的正确路径
path_to_data1 <- system.file("extdata", "data1.txt", package = "your_golem_app")
path_to_data2 <- system.file("extdata", "data2.txt", package = "your_golem_app")

make_path<-function(pathwork, type, ex, subfolder=""){
  path<-paste0(pathwork,"/proj", type,"/",ex,"/",subfolder,"/")
  return(path)
}

getfiles = function(screennames, types, pathwork){
 files = data.frame()
  for (ind in 1:length(screennames)){
    # 修正拼写错误,用screennames[ind]替代names[ind]
    hitfile = file.path(make_path(pathwork, types[ind], screennames[ind], "analysis"),"File.tsv")
    # 检查文件存在性时使用hitfile变量
    if(file.exists(hitfile)){
      files=rbind(files, data.frame(filename=hitfile, screen=paste0(screennames[ind],"-",types[ind])))
    }
  }
  return(files)
}

四、实际操作步骤

  1. 在Golem项目根目录创建inst/extdata/文件夹(若不存在)
  2. 将data1.txt、data2.txt复制到inst/extdata/目录下
  3. 替换上述代码中的your_golem_app为你的项目包名
  4. 测试读取:可以在app_server.R或模块中添加测试代码验证
# 示例:读取TXT文件(根据实际分隔符调整sep参数)
project_info <- read.table(path_to_data1, header = TRUE, sep = "\t")
print(project_info)

内容的提问来源于stack exchange,提问作者GaB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 08:16:02