如何在python中从大容量文件的开始和结束删除字节?

2024-04-28 11:32:39 发布

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

我需要这一步的一些代码来在python上批量生成mp3文件:

  1. 打开*.mp3.mado
  2. 替换“49 44 33”之后的13个字节<;-(ID3->;偏移量0)到零字节
  3. 从文件末尾删除334字节
  4. 将文件保存到*.mp3

Tags: 文件代码ltgt字节批量mp3偏移量
1条回答
网友
1楼 · 发布于 2024-04-28 11:32:39

关键部分是:

  1. 以二进制读/写模式打开文件,以便您可以查找文件并根据需要覆盖字节
  2. 定位文件指针以定义写入操作的起点
  3. 使用truncate删除从当前位置到文件结尾的字节

循环可能更有效,而不是一个接一个地重复读取一个3字节块


import io

file_names = [...]

ID3_START = b'\x49\x44\x33'
ZEROS = b'\x00' * 13

for fname in file_names:
    with open(fname, 'r+b') as f:
        # Find the ID3 block
        while f.read(3) != ID3_START:
            f.seek(-2, io.SEEK_CUR)

        f.write(ZEROS)

        # Drop the last 334 bytes
        f.seek(-334, io.SEEK_END)
        f.truncate()

相关问题 更多 >