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

使用R修改WAV文件名中时间戳的时区

批量将UTC命名的WAV文件重命名为本地时间(UTC-5)

完整R批量重命名脚本

基于你已有的时间转换逻辑,扩展为批量处理的完整脚本:

# 安装并加载所需包(首次运行需执行install.packages)
if (!require(lubridate)) {
  install.packages("lubridate")
  library(lubridate)
}

# 设置SD卡文件所在的目标文件夹路径
datadir <- "你的文件目录绝对路径"

# 获取所有WAV文件(包含子目录)
wav_files <- list.files(datadir, pattern="*.WAV$", full.names=TRUE, recursive=TRUE)

# 循环处理每个文件
for (file_path in wav_files) {
  # 提取不带扩展名的原始文件名
  filename_no_ext <- tools::file_path_sans_ext(basename(file_path))
  # 解析UTC时间
  utc_time <- strptime(filename_no_ext, "%Y%m%d_%H%M%S", tz="UTC")
  # 转换为UTC-5的本地时间
  local_time <- utc_time - hours(5)
  # 生成符合格式的新文件名
  new_filename <- paste0(format(local_time, "%Y%m%d_%H%M%S"), ".wav")
  # 拼接新的完整文件路径
  new_file_path <- file.path(dirname(file_path), new_filename)
  
  # 执行重命名(添加存在判断避免覆盖)
  if (!file.exists(new_file_path)) {
    file.rename(file_path, new_file_path)
    cat("完成重命名:", basename(file_path), "→", new_filename, "\n")
  } else {
    cat("跳过:", new_filename, "已存在,未执行重命名\n")
  }
}

关键细节说明

  • 使用full.names=TRUE确保获取文件完整路径,支持处理子目录中的文件
  • 加入文件存在判断逻辑,防止意外覆盖已有文件
  • 自动处理日期跨天情况(比如UTC时间00:10转换后为前一天的19:10),无需额外调整
  • 保留原文件的目录结构,仅修改文件名的时间部分

操作建议

  1. 先在测试文件夹中放入少量样本文件,运行脚本验证重命名逻辑正确
  2. 确认目标文件夹路径无误,避免误处理其他目录的文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:55:32