如何通过 Python 将空值(00 00 字节)附加到文件直到达到一定大小

How to append null (00 00 ect bytes) to a file until certain size via Python

我有一个文件,我需要将 NULL 或 00 ~ ect 字节附加到文件末尾(十六进制),因此文件大小为 625423968。

目前文件大小为:606256432

我试过了:

with open(f, 'wb') as binfile:
    binfile.write(b'\x00' - 19167536)

但是我的文件大小变成了 0

在 Hex Editor 中手动完成它花费的时间太长

非常感谢大家的帮助!

您可以搜索您的文件,然后写入最后一个NULL。

with open(f, 'wb') as binfile:
    binfile.seek(625423968 - 1)
    binfile.write(b'\x00')

(当您在 [=16= 中不是从头开始编写文件时,也许您必须使用文件模式 "br+。这将保留内容并附加 NULL。)

您可以在(二进制)append 模式下打开文件,字节将添加到文件末尾。

with open(f, 'ab') as f:
    f.write(b'\x00' * 19167536)

终端内演示:

$  python -c 'f = open("hello.bin", "wb");f.write(b"hello");f.close()'
$  xxd hello.bin 
00000000: 6865 6c6c 6f                             hello
$  python -c 'f = open("hello.bin", "ab");f.write(b"\x00" * 32);f.close()'
$  xxd hello.bin 
00000000: 6865 6c6c 6f00 0000 0000 0000 0000 0000  hello...........
00000010: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000020: 0000 0000 00                             .....