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

如何用Python批量复制服务器中指定路径的.wav文件到目标目录

批量复制指定路径的WAV文件到目标目录

我有一个存储多个.wav文件路径的文本文件location.txt,内容如下:

/home/user/test_audio_folder_1/audio1.wav
/home/user/test_audio_folder_2/audio2.wav
/home/user/test_audio_folder_3/audio3.wav
/home/user/test_audio_folder_4/audio4.wav
/home/user/test_audio_folder_5/audio5.wav

需要将这些分散的文件复制到目录/home/user/final_audio_folder/,最终目录要包含audio1.wav至audio5.wav所有文件。

已实现单个文件复制的代码:

import shutil
original = r'/home/user/test_audio_folder_1/audio1.wav'
target=r'/home/user/final_audio_folder/final_audio1.wav'
shutil.copyfile(original,target)

但不知道如何循环读取文本文件中的路径实现批量复制。


解决方案

通过逐行读取文本文件路径,结合os模块提取文件名,再循环调用shutil即可完成批量复制。完整代码如下:

import shutil
import os

# 目标目录
TARGET_DIR = '/home/user/final_audio_folder/'

# 确保目标目录存在,不存在则创建(exist_ok=True避免目录已存在时报错)
os.makedirs(TARGET_DIR, exist_ok=True)

# 读取location.txt中的路径,过滤空行
with open('location.txt', 'r') as f:
    audio_paths = [line.strip() for line in f if line.strip()]

# 循环处理每个文件
for path in audio_paths:
    # 从完整路径中提取文件名
    filename = os.path.basename(path)
    # 拼接目标文件路径
    target_path = os.path.join(TARGET_DIR, filename)
    # 复制文件(保留原文件权限)
    shutil.copy(path, target_path)
    print(f"已复制: {path} -> {target_path}")

关键细节说明

  • os.makedirs(TARGET_DIR, exist_ok=True):提前创建目标目录,避免复制时因目录不存在抛出异常
  • os.path.basename(path):自动从完整路径中提取文件名,无需手动拆分路径字符串
  • os.path.join():跨系统安全拼接路径,避免因Windows/Linux路径分隔符差异出错
  • shutil.copy():相比copyfile,会保留原文件的权限信息,更适配服务器环境
  • 列表推导式过滤空行:避免处理文本文件中可能存在的空行导致的无效路径错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 18:20:33