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