我有一个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)
但它没有返回我想要的。你知道如何修复它吗?
您想在循环之前打开输出文件,并在循环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)