You need to enable JavaScript to run this app. R语言:如何让write.csv输出沿用read.csv2读取的原文件名并加日期后缀
优惠活动
大模型
产品
解决方案
定价
更多

R语言:如何让write.csv输出沿用read.csv2读取的原文件名并加日期后缀

R语言自动匹配读写文件名的实现方案

核心逻辑

不要把输入文件名硬编码两次,把待读取的输入文件名存为独立变量,后续读文件、提取文件名基础部分、拼接输出名全部复用这个变量即可,从根源上避免手动修改读入文件名时,漏改输出文件名的问题。

分步操作

  • 定义输入文件的独立变量,后续所有文件操作都复用这个值
    input_file <- "2005Calc.csv"
    LKCalc <- read.csv2(input_file)
    
  • 生成符合格式要求的日期后缀,和原有代码逻辑完全一致
    output_date <- format(Sys.time(), "%d-%m-%Y")
    
  • 提取输入文件不带.csv扩展名的基础文件名

    注意:不要手动通过截取字符串的方式提取无扩展名的文件名,这类写法遇到文件名中间带点的场景(例如项目2024.01.数据.csv)很容易截断错误,使用R内置的tools::file_path_sans_ext()是最稳妥的方案,这个函数会自动识别文件名最后一个点对应的扩展名,不管文件名中间有多少个点都不会出错。

    base_name <- tools::file_path_sans_ext(input_file)
    
  • 拼接生成最终输出文件名
    csvFileName <- paste0(base_name, output_date, ".csv")
    
  • 执行写出操作
    write.csv(LKCalc, file = csvFileName)
    

完整可直接运行的代码

# 仅需根据实际读取的文件修改这一行的文件名即可
input_file <- "2005Calc.csv"

# 读取数据
LKCalc <- read.csv2(input_file)

# 生成指定格式的日期后缀
output_date <- format(Sys.time(), "%d-%m-%Y")

# 自动提取基础名拼接输出文件名
base_name <- tools::file_path_sans_ext(input_file)
csvFileName <- paste0(base_name, output_date, ".csv")

# 写出文件
write.csv(LKCalc, file = csvFileName)

效果说明

当输入文件为2005Calc.csv时,代码运行后生成的输出文件名为2005Calc+当天日期字符串.csv,例如运行当日为28-01-2021时,输出文件就是2005Calc28-01-2021.csv,完全匹配需求。后续需要更换读取的文件时,仅需修改input_file的赋值内容即可,其他代码无需任何调整。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.07 01:36:07