一个资料夹里面wav合并(同sample rate)

该代码用于将指定目录下的所有.wav音频文件合并成一个文件。它遍历指定路径,找到.wav文件,并利用wave库将它们整合到一个输出文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import wave
import os
import wave
import numpy as np


filepath= "/Users/anker/Documents/2_Speech_data/anker设备实际录音/3382/Stage1/鼠标键盘/"

wavelist=[]
filenames=os.listdir(filepath)
for filename in filenames[:]:
    name,category=os.path.splitext(filepath+filename)  #分解文件扩展名
    if category=='.wav':  #若文件为wav音频文件
        wavelist.append(filepath+filename)
        
# print(wavelist)          
        
outfile = "/Users/anker/Documents/2_Speech_data/anker设备实际录音/3382/Stage1/鼠标键盘/鼠标键盘.wav"
output = wave.open(outfile, 'wb')
  
setparm = 0
for infile in wavelist:
    w = wave.open(infile, 'rb')
    if setparm==0:        
        output.setparams(w.getparams())   #以第一个wav设定sample rate
        output.writeframes(w.readframes(w.getnframes()))
        setparm = 1
    else:
        output.writeframes(w.readframes(w.getnframes()))
    w.close()

output.close()

在VBA (Visual Basic for Applications) 中,如果你想要合并一个资料夹里的多个文件,你可以编写一段宏来遍历指定目录,读取每个文件内容并将其添加到另一个文件中。这里是一个基本的步骤概述: 1. 首先,你需要使用 `Folder` 类打开包含文件的资料夹,并使用 `Files` 属性获取其中的所有文件名。 ```vba Dim folderPath As String folderPath = "C:\YourFolder" ' 替换为你需要合并资料夹路径 Set objFolder = CreateObject("Scripting.FileSystemObject").GetFolder(folderPath) Dim fileNames() As String fileNames = objFolder.Files ``` 2. 然后创建一个新的工作簿或打开一个现有的工作簿,将内容追加到它的第一个工作表中。 ```vba Dim wbTarget As Workbook If Not Dir(wbTargetName) = "" Then Set wbTarget = Workbooks.Open(wbTargetName) Else Set wbTarget = Workbooks.Add End If With wbTarget.Sheets(1).Cells(1, 1) ' 或者根据实际位置调整 .End(xlUp).Offset(1, 0).ClearContents ' 清空最后一行以便添加新内容 End With ``` 3. 使用循环逐个读取文件内容,然后写入目标工作簿。 ```vba For Each fileName In fileNames Dim objFile As Object Set objFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(fileName, 1) Dim line As String Do While Not objFile.AtEndOfStream line = objFile.ReadLine .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = line ' 追加一行 Loop objFile.Close Next fileName ``` 4. 最后别忘了保存目标工作簿。 ```vba wbTarget.Save ``` 记得将上述代码中的 `wbTargetName` `C:\YourFolder` 替换成你的实际情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值