python 3 mp3

2024-10-01 05:07:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的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)

Tags: 文件readdataopenmp3fileixprint
1条回答
网友
1楼 · 发布于 2024-10-01 05:07:16
  • 一条窗户玻璃线?Windows无法理解或使用shebang行

  • 通常最好使用with打开文件(这样可以确保文件再次关闭)

  • 您没有提供.mp3文件的路径;您确定它在正确的目录中吗?

  • 如果将“getartwork”功能分离出来,或者使用现有的模块,比如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)

相关问题 更多 >