【发布时间】:2020-01-30 07:27:30
【问题描述】:
我正在尝试编辑 .m4a 文件(音频文件)中的特定数据行,但我无法找到在 python 中执行此操作的方法。我知道还有其他类似的线程,但是当我在十六进制编辑器程序(例如 HxD)中打开一个 .m4a 文件时,它给我的十六进制数据与我从 python 脚本中得到的不同。我对术语有点困惑。我需要做的是用python读取文件并将其转换为我的十六进制编辑器使用的格式替换数据然后将其转换回来并将其写入文件。我真的不知道这是否可能,或者是否有更简单的方法。我对 Python 还是很陌生,所以我还在学习。我真的只需要有人指出我正确的方向。这样做的原因与我尝试更改的文件元数据有关。
我的python版本:Python 3.7.4
这里是相关文件的链接:https://drive.google.com/file/d/1m8SpCLSyX265_I00MFT1IyltpTAvxntF/view?usp=sharing
我的代码:
with open(file, 'rb') as f:
content = f.read().hex()
print(content)
以下是我需要编辑的行(来自我的十六进制编辑器)
00 00 01 80 68 69 33 32
(文字翻译:����hi32)
替换为:
00 00 00 00 68 69 33 32
我的文件在十六进制编辑器中的开头看起来像这样(HxD):
00 00 00 00 00 00 00 00 01 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 01 0C 60 6D 64 69 61 00 00 00 20 6D 64 68 64 00 00 00 00 D9 98 96 40 D9 B2 F7 52 00 00 AC 44 00 84 EC 00 00 00 00 00 00 00 00 22 68 64 6C 72 00 00 00 00 00 00 00 00 73 6F 75 6E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 0C 16 6D 69 6E 66 00 00 00 10 73 6D 68 64 00 00 00 00 00 00 00 00 00 00 00 24 64 69 6E 66 00 00 00 1C 64 72 65 66 00 00 00 00 00 00 00 01 00 00 00 0C 75 72 6C 20 00 00 00 01 00 01 0B DA 73 74 62 6C 00 00 80 76 73 74 73 64 00 00 00 00 00 00 00 01 00 00 80 66 6D 70 34 61 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 02 00 10 00 00 00 00 AC 44 00 00 00 00 00 33 65 73 64 73 00 00 00 00 03 80 80 80 22 00 00 00 04 80 80 80 14 40 15 00 18 00 00 04 82 90 00 03 E8 00 05 80 80 80 02 12 10 06 80 80 80 01 02 00 00 00
我从 Python 脚本中得到的十六进制开头如下所示:
d5df0d0ef02daf279fd6b15fae5c6e0bc79bec22095ceeada5e77371afc8ee36f10773b1b2c06b1b1ee4e5cccbf67403b26fd37cc6e3cc9f11019ab604f0071872ec6c092cc20b2a6d4460c55986623b50
【问题讨论】:
-
如果您提供相关文件的链接,我们可能会有所帮助。
-
好主意。添加了文件的链接
标签: python python-3.x hex hexdump hex-editors