Python tinytag 批量重命名音乐文件

发布时间 2023-11-26 00:46:44作者: 油画天空

前言

由于本地下载了很多音乐文件,都是来自于不同的渠道,导致文件名十分混乱。甚至有的文件名还包括广告,着实不堪入目。这怎么能忍,今天就来撸它!

分析

在windows系统点击文件属性,其实是能够看到许多相关信息的,这都是内嵌在音乐文件里的,想办法读取这部分内容然后重命名即可。
经过一番搜索,找到了一个python库:tinytag,可以读取音乐文件信息。接下来就是愉快的代码时间啦。
注意Windows文件命名时有很多字符是不允许的,我们需要修改替换一下,否则会报错。

实现

这里直接贴上代码,运行前先安装库:

pip install tinytag

下面是代码:

from tinytag import TinyTag
import os
import re

pattern = r'[\\/:*?"<>|\r\n]+'
dir = r"D:/Music/Result"  # 在这里换为音乐文件所在目录即可,注意没有递归读取,最后面不要带斜杠
file_names = os.listdir(dir)
file_path = [os.path.join(dir, f) for f in file_names]

for f in file_path:
    tag = TinyTag.get(f)
    tittle = re.sub(pattern, '&', tag.title)
    artist = re.sub(pattern, '&', tag.artist)
    new_file = r'{dir}\{tittle} - {artist}.{type}'.format(dir=dir, tittle=tittle, artist=artist, type=f.split('.')[-1])

    if os.path.exists(new_file):
        continue
    else:
        print(new_file)
        os.rename(f, new_file)