【发布时间】:2019-10-18 20:07:29
【问题描述】:
我正在尝试为 for 循环的每次传递创建一个单独的数组,以存储由 wavefile.read 函数生成的“信号”值。
关于代码如何工作/我喜欢它如何工作的一些背景知识:
我有以下文件路径:
Root directory
Labeled directory
Irrelevant multiple directories
Multiple .wav files stored in these subdirectories
Labeled directory
Irrelevant multiple directories
Multiple .wav files stored in these subdirectories
现在对于每个带标签的文件夹,我想创建一个数组来保存其各自子目录中包含的所有 .wav 文件的值。
这是我尝试的:
for label in df.index:
for path, directories, files in os.walk('voxceleb1/wav_dev_files/' + label):
for file in files:
if file.endswith('.wav'):
count = count + 1
rate,signal = wavfile.read(os.path.join(path, file))
print(count)
上面是数据帧df的快照
最终,这些数组的原因是我想计算每个标记的子目录中包含的 wav 文件的平均平均时间长度,并将其作为列向量添加到数据帧中。
请注意,数据框的索引对应于目录名称。我感谢任何和所有的帮助!
【问题讨论】:
-
我没有完全按照您的要求进行操作,但怀疑您最好将文件值收集在列表或字典中,而不是 numpy 数组中。一个空列表是
[],列表追加是一种将对象添加到列表的有效方式。
标签: python pandas scipy librosa