Python 3 mp3 работа
У меня есть простая программа Python, которая получает изображения из файлов MP3. Но когда я пытаюсь открыть полученный файл на моей веб-странице, он не загружается.
Это мой код:
#!"C:/Python32/python.exe"
import binascii
print('Content-type:image/jpeg\n\n\n')
mp3 = r'music.mp3'
mp3_File = open(mp3, "rb")
mp3_Data = mp3_File.read()
mp3_File.close()
hexs = str(binascii.hexlify(mp3_Data))
hexol = []
for ix in range(2, len(hexs)-1, 2):
hex = hexs[ix]+hex_str[ix+1]
hexol.append('|'+hex)
hex_str = "".join(hex_list)
img = hexs.split('|41|50|49|43')
p = img[1]
p = p.replace('|','')
p = p[:34*1500]
hexl = []
for ix in range(2, len(p)-1, 2):
hex = p[ix]+p[ix+1]
hexl.append(hex)
art = open('C:\\hi.jpg','wb')
art.write(binascii.unhexlify(''.join(hexl).encode('utf-8')))
art.close()
data = open('C:\\hi.jpg', 'rb').read()
print(data)
1 ответ
Решение
Линия Шебанга Windows? Windows не понимает и не использует линии Шебанга
обычно лучше использовать
with
открывать файлы (это гарантирует, что они снова закрываются)вы не указываете путь к файлу.mp3; Вы уверены, что он находится в правильном каталоге?
было бы яснее, если бы вы отделили материал 'get artwork' как функцию, или, что еще лучше, используйте существующий модуль, такой как mutagen
точно так же не ясно, как вы выставляете это браузеру; использование существующего модуля, такого как Flask, вероятно, является хорошим решением
Ваш код становится чем-то вроде
import mutagen
from flask import make_response
import os
music_dir = 'c:/www/music'
@app.route('/cover')
def cover_art():
fname = 'music.mp3'
mp3 = mutagen.File(os.path.join(music_dir, fname))
art = mp3.tags['APIC:'].data
def wsgi_app(environ, start_response):
start_response('200 OK', [('Content-type', 'image/jpeg')])
return art
return make_response(wsgi_app)