python - 在python中创建二进制文件

标签 python binaryfiles

我有一个名为 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/

相关文章:

c - 将二进制文件读入字符串但类型混合

java - 更有效地存储(字符串,整数)元组并应用二分搜索

python - python 中的 OpenGL 因 glCheckError 调用而变慢

python - Matplotlib 3D 散点动画

python - 在 Python 中实现二十一点

python - 开始使用 Python 创建网站

c++ - 无法将大的无符号整数正确写入二进制文件 - C++

c++ - 无法读取 midi 文件? [扩展规范?]

clojure - 如何在Clojure中解析二进制文件

python - 属性错误: 'Timestamp' object has no attribute 'read'