私はバイナリデータの読み書きを処理する方法を学びます。あなたが見てみる必要があります Lame mp3 TagsPythonのバイナリMP3ファイルから特定のバイトを読み取る方法は?
1
A
答えて
1
:私はこのような構造でmp3ファイルに範囲$ A7- $ ACにアクセスして読むことができますどのように
f = open(myfile, mode='rb')
fb = f.read()
f.close()
return fb
でバイナリファイルを開くことができることを知っていますバイナリデータの抽出に役立つPythonのstruct
ライブラリ
import struct
mp3_filename = r"my_mp3_file.mp3"
with open(mp3_filename, 'rb') as f_mp3:
mp3 = f_mp3.read()
entry = mp3[0xA7:0xAC+1]
print struct.unpack("{}b".format(len(entry)), entry)
これは、あなたのような整数のリスト与えるだろう:あなたはバイトのそれぞれをintepretする方法はPythonを伝えるためにフォーマット文字列を渡す
(49, 0, 57, 0, 57, 0)
を。この例では、すべて単純にバイトから整数に変換されます。各書式指定子は繰り返し回数を持つことができるので、書式文字列は"6b"
になります。
これらを0に変換するには、ファイルを閉じてもう一度開く必要があります。これを行うには、次のように入力します。書き込み。次のように新しい出力をビルドします。
import struct
mp3_filename = r"my_mp3_file.mp3"
zeros = "\0\0\0\0\0\0"
with open(mp3_filename, 'rb') as f_mp3:
mp3 = f_mp3.read()
entry = mp3[0xA7:0xAC+1]
print struct.unpack("{}B".format(len(entry)), entry)
if entry != zeros:
print "non zero"
with open(mp3_filename, 'wb') as f_mp3:
f_mp3.write(mp3[:0xA7] + zeros + mp3[0xAD:])
をFYI:MP3ファイルからタグ情報を抽出することができます既製のPythonライブラリがあります。 id3reader
パッケージのようなものを見てください。
関連する問題
- 1. クライアントサーバープログラムのファイルから特定のバイトを読み取る
- 2. Pythonのファイルのリストから特定の名前を読み取る方法は?
- 3. ファイルから特定のバイト数をJavaのバイト配列に読み取る方法は?
- 4. python(numpy):CSVファイルから特定の列を読み取る方法は?
- 5. バイト配列から特定の値を読み取る方法は?
- 6. PythonでCSVファイルの特定の行を読み取る方法
- 7. バイナリWebMファイルからフロートを読み取る方法は?
- 8. ゴランのバッファードリーダーから特定のバイト数を読み取る
- 9. Python - csvファイルから特定の列を読み取る
- 10. csvからバイトをバイトとして読み取る方法は?
- 11. Pythonは特定の位置からバイナリを読み込みます
- 12. JavaのAvro-Parquetファイルから特定のフィールドを読み取る方法は?
- 13. ファイル内の特定の列を読み取る方法は?
- 14. swift4で特定のファイルの行を読み取る方法は?
- 15. RustのWindowsファイルハンドルからバイトを読み取る方法は?
- 16. 大きなファイルから特定の行を読み取る方法は?
- 17. ファイル内のdbgバイナリ出力を読み取る方法は?
- 18. データセットから特定の行を読み取る方法
- 19. AEMからバイナリを読み取る方法は?
- 20. Pythonで大きなファイルの特定の部分を読み取る方法
- 21. シリアルポートからPythonのファイルにASCIIデータを読み取る方法
- 22. txtファイルの特定の行を読み取る方法vb 6
- 23. Pythonの応答から特定のJSONオブジェクトを読み取る
- 24. ファイルから特定のデータを配列文字列に読み取る方法
- 25. libccv - メモリ内のバイトからイメージを読み取る方法
- 26. Python 3特定の行をファイルから配列に読み込む方法
- 27. ファイルからUTF-8文字をバイトとして読み取る方法は?
- 28. MatlabのExcelファイルから特定のセルを読み取る
- 29. matlabのCSVファイルから特定の列を読み取る
- 30. バイナリBLOBをFirebirdからバイト[]にC#で読み込む方法は?
ありがとうございます。結果として得られる整数は私にとって完璧です。私は0がないかどうかだけをチェックしたいと思います。しかし、どうすればそのようなバイトを0に置き換えてファイルに書き戻すことができますか? – xpilgrim
IMHO、id3readerパッケージは、id3タグではなく、lameタグのフィールドですが、id3readerパッケージはこれに適していません。 – xpilgrim
バイナリ書き込みモードでmp3ファイルを再度開き、セクションを0に置き換える必要があります。私は答えを更新しました。 –