我正在尝试编写一个程序来读取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)
答案 0 :(得分:0)
所以这两行
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,因为这里肯定会有一些可用的例子。