在Python中读取和写入二进制文件

ell*_*lly 0 python binary

我有一个binary名为“ input.bin”的文件。我正在练习如何使用此类文件(读取它们,更改内容并写入新的二进制文件)。输入文件的内容:

03 fa 55 12 20 66 67 50 e8 ab
Run Code Online (Sandbox Code Playgroud)

这是用hexadecimal符号表示的。

我想制作一个输出文件,它只是输入文件,每个字节的值递增一。

这是预期的输出:

04 fb 56 13 21 67 68 51 e9 ac
Run Code Online (Sandbox Code Playgroud)

这也将以hexadecimal符号表示。我正在尝试使用以下命令在 python3 中执行此操作:

with open("input.bin", "rb") as binary_file:
    data = binary_file.read()
    for item in data:
        item2 = item+1
    with open("output.bin", "wb") as binary_file2:
        binary_file2.write(item2)
Run Code Online (Sandbox Code Playgroud)

但它没有返回我想要的。你知道如何修复它吗?

che*_*ner 5

您想在循环之前打开输出文件,并在循环write 中调用。

with open("input.bin", "rb") as binary_file:
    data = binary_file.read()

with open("output.bin", "wb") as binary_file2:
    binary_file2.write(bytes(item - 1 for item in data))
Run Code Online (Sandbox Code Playgroud)