【问题标题】:python music tagger and organiserpython音乐标注器和组织者
【发布时间】:2015-05-15 17:02:35
【问题描述】:

我正在尝试编写一个程序来读取 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)

【问题讨论】:

  • 请格式化您的代码。
  • 请详细说明“剂量似乎不起作用”部分。

标签: python


【解决方案1】:

这两行

MP4 == (audio = MP4(ip))

MP3 == (Audio = MP3(ip))

只是在比较一些东西。他们只会返回True 或False,并且没有任何效果。就目前而言,他们只是将您导入的模块与作业进行比较,这让我感到困惑。你想用这些台词做什么?

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,因为那里肯定有一些有用的示例。

【讨论】:

  • 感谢您,这对您有很大帮助。
猜你喜欢
  • 2016-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-24
  • 1970-01-01
  • 2019-04-04
  • 2021-05-05
相关资源
最近更新 更多