如何用R批量将文件夹中的MP3文件转换为WAV格式
批量将MP3转换为WAV的R实现
首先确保安装并加载所需的tuneR包:
# 若未安装则先安装 if (!require(tuneR)) { install.packages("tuneR") library(tuneR) }
接下来编写批量转换的核心代码:
# 设置MP3文件所在的文件夹路径(替换为你的实际路径) mp3_folder <- "D:\\5366374684\\0297B65BR095V53DIHAKG2LAES00H7AT" # 设置WAV文件的输出文件夹(可自定义,若不存在则自动创建) wav_folder <- "D:\\mp3_to_wav_output" if (!dir.exists(wav_folder)) { dir.create(wav_folder, recursive = TRUE) } # 获取文件夹下所有MP3文件的完整路径 mp3_files <- list.files(path = mp3_folder, pattern = "\\.mp3$", full.names = TRUE, ignore.case = TRUE) # 循环处理每个MP3文件 for (mp3_path in mp3_files) { # 提取文件名(不含后缀) file_name <- tools::file_path_sans_ext(basename(mp3_path)) # 构造对应的WAV输出路径 wav_path <- file.path(wav_folder, paste0(file_name, ".wav")) tryCatch({ # 读取MP3文件 audio <- readMP3(mp3_path) # 写入WAV文件 writeWave(audio, wav_path, extensible = FALSE) cat("已完成转换:", basename(mp3_path), "→", basename(wav_path), "\n") }, error = function(e) { cat("转换失败:", basename(mp3_path), ",错误信息:", e$message, "\n") }) }
关键说明:
pattern = "\\.mp3$"确保只匹配以.mp3结尾的文件,ignore.case = TRUE兼容大小写格式(如.MP3)tryCatch用于捕获转换中的异常,避免单个文件失败导致整个循环终止tools::file_path_sans_ext是安全提取文件名(不含后缀)的方法,比手动截取更可靠- 输出文件夹会自动递归创建,无需手动提前建立
内容的提问来源于stack exchange,提问作者george g
相关产品推荐
相关产品推荐

