我有一个名为 file1.bin 的非常大的二进制文件,我想创建一个文件 file2.bin,它只包含 file1.bin 的前 32kb。
所以我正在读取 file1 如下:
myArr = bytearray()
with open(r"C:\Users\User\file1.bin", "rb") as f:
byte = f.read(1)
for i in range(32,678):
myArr.extend(byte)
byte = f.read(1)
我的问题是:如何从这里开始从 myArr 创建 file2 二进制文件?
我试过了
with open(r"C:\Users\User\file2.bin", "w") as f:
f.write(myArr)
但这会导致:
f.write(myArr)
TypeError: must be string or pinned buffer, not bytearray
最佳答案
您需要以二进制写入模式(wb
)打开文件。
with open('file2.bin', 'wb') as f:
f.write(myArr)
此外,您从输入文件中读取的方式非常低效。 f.read()
允许您一次读取多个字节:
with open('file1.bin', 'rb') as f:
myArr = bytearray(f.read(32678))
将完全按照您的意愿行事。
关于python - 在python中创建二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21910059/