import os import csv def detLabel(filename): #determine the label of the recording if "cello" in filename: label = 0 elif "church" in filename: label = 1 elif "clarinet" in filename: label = 2 elif "flute" in filename: label = 3 elif "guitar" in filename: label = 4 elif "harp" in filename: label = 5 elif "marimba" in filename: label = 6 elif "perldrop" in filename: label = 7 elif "piano" in filename: label = 8 elif "synlead3" in filename: label = 9 else: #violin label = 10 return label fileOrigin = "samples" dataFile = "data.csv" with open(dataFile, 'w', newline='') as csvfile: fileWriter = csv.writer(csvfile, delimiter=',') fileWriter.writerow(['filename', 'instrument']) for filename in os.listdir(fileOrigin): fileWriter.writerow([filename, detLabel(filename)])
时间: 2024-04-25 22:26:30 浏览: 132
browser.js:判断浏览器和内核的工具(Determine the browser and the kernel of the tool)
这段代码的作用是将文件夹samples中的音频文件按照乐器种类的不同标记,并将它们的名称和标记存储在名为data.csv的CSV文件中。
首先,定义了一个名为detLabel的函数,用于根据文件名确定音频文件所属的乐器种类,并返回一个标记(从0到10)。其中,0~9分别代表cello、church、clarinet、flute、guitar、harp、marimba、perldrop、piano和synlead3,10代表violin。
然后,代码定义了两个变量fileOrigin和dataFile,分别表示存放音频文件的文件夹路径和CSV文件的路径。
接下来,使用Python内置的os模块中的listdir()函数遍历fileOrigin文件夹中的所有文件名,并将它们传递给detLabel函数,获取对应的标记。最后,将文件名和标记写入data.csv文件中,以逗号分隔。其中,第一行为文件头,包括两列:filename和instrument。
阅读全文