python音乐标记和组织者

时间:2015-03-13 09:09:37

标签: python

我正在尝试编写一个程序来读取mp3或mp4音乐文件,然后在屏幕上打印标签,但我写的代码似乎不起作用,我现在完全迷失了修复它

# import mutagen

    from mutagen.easyid3 import EasyID3

    from mutagen.mp4 import MP4

    from mutagen.mp3 import MP3

    # Define a function to read ID3 tags

    MP4 == (audio = MP4(ip))

    MP3 == (Audio = MP3(ip))

    def readid3 (ip):

        if music_file == MP4:

            print(audio['\xa9alb'])
            print(audio['\xa9nam'])
            print(audio['\xa9ART'])
            print(audio['\xa9gen'])


        else:

                if music_file == MP3:

                    print(audio['TALB'])
                    print(audio['TIT2'])
                    print(audio['TPE1'])
                    print(audio['TCON'])


                else:

                    print('Is not a MP3 or MP4 file')



####### main body ########

# prompt user to enter a MP4

    music_file = open('mp4file.txt','a+')
    music_file.write("/Users/martins-mac/Music/iTunes/iTunes Media/Music/Frightened Rabbit/Pedestrian Verse/01 Acts of Man.m4a")
    music_file.close()

# call function to print ID3 tags

    readid3(music_file)

1 个答案:

答案 0 :(得分:0)

所以这两行

MP4 == (audio = MP4(ip))

MP3 == (Audio = MP3(ip))

只是比较一些东西。他们只会返回TrueFalse,并且无效。就目前而言,他们只是将您导入的模块与作业进行比较,这让我感到困惑。你想用这些线做什么?

if music_file == MP4:

使用==是否正确,但此时未定义music_file。当您稍后调用它时,它是全局定义的,但它看起来像

if ip == MP4:

会更好地为你服务。

当您开始readid3(music_file)时,您已经关闭了该文件。尝试将music_file = open("mp4file.txt", "r")放在该行之前。

您可能还可以查看https://mutagen.readthedocs.org/en/latest/api/base.html,因为这里肯定会有一些可用的例子。