【发布时间】:2021-01-15 16:17:06
【问题描述】:
我是 python 的新手,我试图在一个目录中循环,目的是将文件夹中包含的每个 wav 文件分成许多块。 我已经成功循环并分割了文件,但是当我尝试将块导出到新文件夹中时,我无法弄清楚如何更改创建的块名称以便成功保存所有文件(不覆盖)。
import os
from pydub import AudioSegment
path = ""
os.chdir(path)
audio_files = os.listdir()
for file in audio_files:
name, ext = os.path.splitext(file)
if ext == ".wav":
w = AudioSegment.from_wav(file)
chunk_length_ms = 3000
chunks = make_chunks(w, chunk_length_ms)
for i, chunk in enumerate(chunks):
chunk_name = "{0}.wav".format(name)
print ("exporting", chunk_name)
chunk.export('dir_path' + chunk_name, format="wav")
使用此代码仅成功保存了 100 个块,而不是 1100 个。 wav 文件具有以下名称结构:“genre.000x.wav”,例如。 'Blues.00001.wav' 应分块为:'Blues.00001a.wav','Blues.00001b.wav',ecc。 我该怎么做?
【问题讨论】: