Domanda

Stiamo generando file MP3 al volo in Python, e la necessità di modificare le intestazioni ID3 in memoria usando un oggetto simile a file.

Tutte le librerie ID3 su PyPI apparire di richiedere all'utente di passare un percorso filesystem come una stringa. Trovo che questo sia piuttosto frustrante!

scrivere il nostro MP3 generato su disco (o ramdisk) solo per aggiungere i tag ID3 è inaccettabile per una serie di motivi, in termini di prestazioni.

Data la pienezza di librerie ID3 , c'è una libreria ID3 che funziona semplicemente con gli oggetti file-like?

È stato utile?

Soluzione 3

Bene, la risposta sembra essere che non esiste tale animale. I vantaggi della programmazione ad un'interfaccia sono apparentemente perse sulle pitone hacker telaio MP3. Abbiamo risolto il problema modificando una libreria esistente.

Altri suggerimenti

Per coloro che trovare questa risposta in un lontano futuro, mutageno , ha funzionato perfettamente per me e per il costruttore per uno dei suoi oggetti MP3 prende o un percorso di file o un oggetto simile a file (i documenti chiamano un 'filething').

https://mutagen.readthedocs.io/en/latest/ utente / filelike.html :

  

Il primo argomento passato a un tipo di file o metadati possono essere sia un nome di file o di un oggetto simile a file, come ad esempio StringIO (BytesIO in Python 3) e mutageno sarà capire cosa fare.

MP3("myfile.mp3")
MP3(myfileobj)

tag afair vengono aggiunti alla fine del file. Si potrebbe desiderare di studiare il formato e fare una semplice libreria di te stesso, che non dovrebbe essere molto difficile.

Inoltre, si potrebbe prendere in considerazione la loro memorizzazione temporanea su un filesystem come tmpfs (ramdisk).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top