一、问题
用python编写了一个爬虫程序爬取某瓜音乐视频后,由于无音频文件,就用moviepy的VideoFileClip()函数加载后视频文件后,再用audio.write_audiofile()提取其中的音频文件,最后再删除原视频文件。
结果前面都很成功,但在最后删除原视频文件时,运行报错:
PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问
二、问题解决
经过大量百度后,终于了解到:用VideoFileClip()加载原视频文件后,没有关闭加载进程,所以在删除时就出现上面的报错。解决办法:
在提取后加上.close()就行了。
三、最终代码:
def vedio_to_audio(path1,path2):#从视频中提取音频。path1视频文件路径;path2,音频文件保存路径
my_clip = mp.VideoFileClip(path1)
my_clip.audio.write_audiofile(path2)
my_clip.close()
四、运行效果: