如何通过 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 .....
我有一个文件,我需要将 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 .....