Python开发实践-音乐整理工具MusicOrganizer

2021-04-22 11:56:13 浏览数 (1)

背景

音乐爱好者的爱好可能就是下载各种质量音乐,但是音乐多了之后如何整理就成了一个问题。从本文开始使用Python语言以循序渐进的方式开发一个音乐整理工具。

获取音乐信息

下面的代码首先遍历指定目录,然后在第12行,第14行使用mutagen库获取音乐信息。

代码语言:javascript复制
import os
from mutagen.flac import FLAC
from mutagen.mp3 import EasyMP3

if __name__ == "__main__":
    rootdir = '.Song'
    file_list = os.listdir(rootdir)  # 列出文件夹下所有的目录与文件

    for file in file_list:
        path = os.path.join(rootdir, file)
        if path[-5:] == '.flac':
            audio = FLAC(path)
        elif path[-4:] == '.mp3':
            audio = EasyMP3(path)
        else:
            audio = None
        print(audio)

测试代码的目录如下图所示:

程序执行结果如下:

代码语言:javascript复制
{'album': ['Album1'], 'title': ['T1'], 'artist': ['A1'], 'albumartist': ['AA1']}
{'tracknumber': ['1'], 'language': ['KOR'], 'albumartist': ['AA2'], 'encoder': ['E2'], 'artist': ['A2'], 'title': ['T2'], 'album': ['Album2'], 'description': ['D2']}
{'tracknumber': ['1'], 'albumartist': ['AA3'], 'encoder': ['E3'], 'artist': ['A3'], 'title': ['T3'], 'album': ['Album3'], 'description': ['D3']}
{'tracknumber': ['1'], 'albumartist': ['AA4'], 'encoder': ['E4'], 'artist': ['A4'], 'title': ['T4'], 'album': ['Album4'], 'description': ['D4']}
{'albumartist': ['AA5'], 'artist': ['A5'], 'title': ['T5'], 'album': ['Album5'], 'description': ['D5']}

可以看到mp3文件的信息比flac文件略少。

参考代码

完整代码可以从以下链接下载:

https://github.com/xueweiguo/Python/tree/master/MusicOrganizer

作者著作介绍

《实战Python设计模式》是作者去年3月份出版的技术书籍,该书利用Python 的标准GUI 工具包tkinter,通过可执行的示例对23 个设计模式逐个进行说明。这样一方面可以使读者了解真实的软件开发工作中每个设计模式的运用场景和想要解决的问题;另一方面通过对这些问题的解决过程进行说明,让读者明白在编写代码时如何判断使用设计模式的利弊,并合理运用设计模式。

对设计模式感兴趣而且希望随学随用的读者通过本书可以快速跨越从理解到运用的门槛;希望学习Python GUI 编程的读者可以将本书中的示例作为设计和开发的参考;使用Python 语言进行图像分析、数据处理工作的读者可以直接以本书中的示例为基础,迅速构建自己的系统架构。

0 人点赞