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

在R中导出独立CSV时保留原文件名及解决路径报错的问题

解决方案

问题分析

你遇到的核心问题:

  • 第一个代码用full.names = TRUE获取了带完整路径的文件名,导致后续生成文件时使用长路径作为文件名
  • 第二个代码仅获取了文件名,但读取时未拼接子文件夹路径,R无法定位到文件

正确实现代码

根据你的需求,提供两种常见场景的解决方案:

场景1:读取文件后,保存为原文件名的独立CSV文件

如果需要读取文件(可添加处理逻辑)后,用原文件名保存到当前工作目录:

# 定义目标文件夹路径
folder <- "C:/LongPathToFolder/feb28-jun20"

# 获取符合规则的文件完整路径,同时提取原文件名
files <- list.files(
  path = folder,
  pattern = "_Bethel.*\\.csv$",  # 正则匹配以_Bethel开头、.csv结尾的文件
  ignore.case = FALSE,
  full.names = TRUE
)
# 提取原文件名(去掉完整路径)
original_names <- basename(files)

# 循环处理每个文件
for (file_idx in seq_along(files)) {
  # 读取CSV文件
  csv_data <- read.csv(files[file_idx], header = FALSE, sep = ",")
  
  # (可选)在这里添加你的数据处理代码
  
  # 用原文件名保存CSV
  write.csv(csv_data, file = original_names[file_idx], row.names = FALSE)
}

场景2:读取文件后,在R环境中创建以原文件名命名的变量

如果只是想把每个CSV读入R,并用原文件名(去掉.csv后缀)作为变量名:

folder <- "C:/LongPathToFolder/feb28-jun20"

files <- list.files(
  path = folder,
  pattern = "_Bethel.*\\.csv$",
  ignore.case = FALSE,
  full.names = TRUE
)
# 提取去掉后缀的原文件名作为变量名
var_names <- tools::file_path_sans_ext(basename(files))

for (file_idx in seq_along(files)) {
  csv_data <- read.csv(files[file_idx], header = FALSE, sep = ",")
  # 将数据赋值给对应变量名
  assign(var_names[file_idx], csv_data)
}

你的第二个代码报错原因及修正

你用list.files("feb28-jun20")得到的是子文件夹内的文件名(比如test.csv),但read.csv默认在当前工作目录查找文件,而文件实际在feb28-jun20子文件夹中,需要拼接路径才能定位:

files2 <- list.files("feb28-jun20", pattern = ".*\\.csv$")
for (i in seq_along(files2)) {
  # 用file.path拼接子文件夹和文件名
  read.csv(file.path("feb28-jun20", files2[i]), header = FALSE, sep = ",")
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 06:29:57