PythonでファイルライクオブジェクトにMP3のメタデータを編集しますか?
質問
私たちはPythonでオンザフライでMP3ファイルを生成し、ファイルのようなオブジェクトを使用してメモリ内のID3ヘッダを編集する必要があります。
は、PyPI のの上すべてのID3ライブラリ表示されます
の文字列としてファイルシステムのパスを渡すためにあなたを必要としています。私は、これはかなりイライラ見つける!ちょうどID3タグを追加するために、ディスク(またはRAMディスク)に、当社の生成MP3を書くことは多くの理由から、特にパフォーマンスには受け入れられない。
のID3ライブラリののplentitudeを考えると、単にファイルのようなオブジェクトで動作ID3ライブラリはありますか?
解決 3
さて、答えはそのような動物が存在しないということのようです。インターフェイスへのプログラミングの利点は明らかにPythonのMP3フレームのハッカーに失われます。私たちは、既存のライブラリを変更することで問題を解決します。
他のヒント
遠い将来にこの答えを見つけたもの、変異原の、完璧に取り組んできました私とそのMP3のオブジェクトのいずれかのコンストラクタのにかかるのいずれかのファイルパスまたはのファイルのようなオブジェクト(ドキュメントは「filething」それを呼び出します)。
https://mutagen.readthedocs.io/en/latest/からユーザー/ filelike.htmlするます:
のFileTypeやメタデータに渡される最初の引数は、ファイル名やファイルのようなオブジェクト、このようにStringIO(Pythonの3中BytesIO)や変異原のいずれかであることができる何をすべきかを把握します。
MP3("myfile.mp3") MP3(myfileobj)
はStringIOは助けていますか? http://docs.python.org/library/stringio.htmlする
AFAIRタグはファイルの末尾に追加されます。あなたはフォーマットを研究し、シンプルなライブラリ自身、非常に難しいことではありませんようにしたいかもしれません。
また、あなたはtmpfsの(RAMディスク)などのファイルシステム上の一時保管する検討することもでき。