环境:
win 10
anaconda 4.8.3
python 3.7.3
安装第三方库
pip install moviepy
代码:
from moviepy.editor import *
#获取文档绝对路径下 所有视频的绝对路径
#逐个转换
#保存为MP3
#修改文件夹下所有xml文件中的中文路径
def changesku(inputpath):
listdir = os.listdir(inputpath)#获得所有文件名
for file in listdir:
filepath = os.path.join(inputpath, file)#将根路径与文件名路径组合成绝对路径
video = VideoFileClip(filepath)
list_filepath = list(filepath)
if list_filepath[-1] == '4':
list_filepath[-1] = '3'
filepath = ''.join(list_filepath)
print(filepath)
audio = video.audio
audio.write_audiofile(filepath)
if __name__ == '__main__':
vediopath = 'C:\\CloudMusic\\MV' # 这是xml文件的文件夹的绝对地址
changesku(vediopath)
效果图:
Version 2:修复bug,新增检查已转换完的歌曲
from moviepy.editor import *
#获取文档绝对路径下 所有视频的绝对路径
#逐个转换
#保存为MP3
#修改文件夹下所有xml文件中的中文路径
def changesku(inputpath):
listdir = os.listdir(inputpath)#获得所有文件名
mp4namelist = [name for name in listdir if name.endswith('.mp4')]
for file in mp4namelist:
filepath = os.path.join(inputpath, file)#将根路径与文件名路径组合成绝对路径
video = VideoFileClip(filepath)
list_filepath = list(filepath)
list_filepath[-1] = '3'
#判断MP3是否已存在
if list_filepath in listdir:
continue
filepath = ''.join(list_filepath)
print(filepath)
audio = video.audio
audio.write_audiofile(filepath)
if __name__ == '__main__':
vediopath = 'C:\\CloudMusic\\MV\\MV' # 这是xml文件的文件夹的绝对地址
changesku(vediopath)