如何在Shiny中渲染指定的目录结构文本?
在Shiny中渲染固定目录结构文本的方法
你可以通过两种简单的方式在Shiny应用中渲染带格式的固定目录结构文本:
方法1:使用verbatimTextOutput(快速实现)
这是最直接的方式,Shiny的verbatimTextOutput组件会自动保留文本的换行、缩进和格式,适合纯文本展示场景。
完整代码示例
ui <- fluidPage( h3("预期目录结构"), verbatimTextOutput("dir_structure") ) server <- function(input, output) { # 存储你的固定目录结构字符串 dir_str <- 'project/ ├── Input/ # <- path user enters │ ├── Group 1/ │ │ ├── Data Request Form/ │ │ └── DO NOT EDIT/ │ │ └── DRF.xlsx │ │ └── Data/ │ │ └── Datasets 1/ │ │ └── *[.csv|.txt] │ │ └── Datasets 2/ │ │ └── *[.csv|.txt] │ │ └── Datasets 3/ │ │ └── *[.csv|.txt] │ └── more groups ... ├── Output' output$dir_structure <- renderText({ dir_str }) } shinyApp(ui, server)
方法2:使用htmlOutput+<pre>标签(支持自定义样式)
如果需要给目录结构添加样式(比如背景色、字体调整),可以用HTML的<pre>标签包裹文本,通过renderUI渲染。
完整代码示例
ui <- fluidPage( h3("预期目录结构"), htmlOutput("dir_structure_html") ) server <- function(input, output) { dir_str <- 'project/ ├── Input/ # <- path user enters │ ├── Group 1/ │ │ ├── Data Request Form/ │ │ └── DO NOT EDIT/ │ │ └── DRF.xlsx │ │ └── Data/ │ │ └── Datasets 1/ │ │ └── *[.csv|.txt] │ │ └── Datasets 2/ │ │ └── *[.csv|.txt] │ │ └── Datasets 3/ │ │ └── *[.csv|.txt] │ └── more groups ... ├── Output' output$dir_structure_html <- renderUI({ # 自定义样式:等宽字体、灰色背景、内边距和圆角 HTML(paste0("<pre style='font-family: monospace; background-color: #f5f5f5; padding: 12px; border-radius: 6px;'>", dir_str, "</pre>")) }) } shinyApp(ui, server)
两种方法都能完美保留你预设的目录结构格式,根据是否需要样式自定义选择即可。
内容的提问来源于stack exchange,提问作者currently_working
相关产品推荐
相关产品推荐

