python 小project:将文件夹下所有MP4转MP3

环境:

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)


效果图:
python 小project:将文件夹下所有MP4转MP3_第1张图片

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)


你可能感兴趣的:(python)