Python重命名媒体文件

时间:2015-08-10 23:27:36

标签: python media id3

我正在使用ID3库将我的文件重命名为包含歌曲标题的数据标签,以取出文件名中的数字和其他废话。 Haven一段时间没用过python。无论我是谁,我都非常确定这是代码,但我没有输出,也没有我的文件更改名称。

def rename():
        location = "/media/martinstone/6EA41336A412FFEF/Users/Martin7/Desktop/Music/"
        for files in os.walk(location):
                for mfiles in files[2]:
                        if ".mp3" in mfiles:
                                path = location + mfiles
                                id3info = ID3(path)
                                os.rename(path, id3info['TITLE'])
                                print id3info['TITLE']
rename()

2 个答案:

答案 0 :(得分:1)

您可以使用songdetails Python包作为替代方法来完成这项工作。 Download and install其依赖项。

这个脚本应该完成这项工作。

import os, songdetails

location = r'/Users/Mo/Music'
os.chdir(location)

for root, dirs, files in os.walk(location):
    for mp3s in files:
        if mp3s.endswith('.mp3'):
            song = songdetails.scan(mp3s)
            song_name="{}.mp3".format(song.title)
            print ("{} will be renamed to {} ".format (mp3s,song.title))
            os.rename(mp3s, song_name)

干杯。

答案 1 :(得分:0)

这将重命名.mp3及其所有子目录指定的目录中以location结尾的所有文件。

import os


def rename_mp3_files(location):
    for root, dirs, files in os.walk(location):
        for m_file in files:
            if m_file.endswith('.mp3'):
                old_filepath = os.path.join(root, m_file)
                id3info = ID3(old_filepath)

                new_filename = '{}.mp3'.format(id3info['TITLE'])
                new_filepath = os.path.join(root, new_filename)

                os.rename(old_filepath, new_filepath)

                print id3info['TITLE']


location = "/media/martinstone/6EA41336A412FFEF/Users/Martin7/Desktop/Music/"
rename_mp3_files(location)

仅供参考,有些工具可以帮到你。不一定会阻止你自己编码,但万一你不知道:)。