为什么带有 "open" 的精确副本不能生成有效的二进制文件?

why an exact copy with "open" doesn't produce a valid binary file?

我注意到 *.exe 文件的精确副本无法按预期打开二进制文件:

with open("input.exe", "rb") as f1:
    bs = f1.read()
    with open("output.exe", "wb") as f2:
        # Copy byte by byte
        f2.write(bs)

生成的“output.exe”在启动时崩溃。 我知道我在这里很含糊,但从理论的角度来看,我是否遗漏了什么?我什至检查过,两个文件的 md5 校验和相同,但仍然“input.exe”运行,而“output.exe”不运行。

P.S。一开始我想将“input.exe”编码为一个txt文件,然后将其解码回二进制文件,但最后问题归结为上面的代码。

P.S 相同的代码适用于其他文件类型,例如图像 (*.jpg)

我发现了问题,输出文件名应该有一个特定的名称。