【问题标题】:How to base64 encode/decode binary files in python?如何在python中对二进制文件进行base64编码/解码?
【发布时间】:2017-11-30 18:59:12
【问题描述】:

我正在尝试使用 python 使用以下简单代码对相同的图像文件进行编码和解码。但是每次输出文件都大于输入文件并且无法打开。这段代码有什么问题?

import base64

with open("img.jpeg", "rb") as image_file:
    encoded_string = base64.b64encode(image_file.read())

    decoded_string = base64.b64decode(encoded_string)
    with open("test_img.jpeg", "w") as image_file2:
        image_file2.write(decoded_string);

原始文件:https://filebin.ca/3j6aIDlWEYdV/img.jpeg
结果文件:https://filebin.ca/3j6arBo85Lcg/test_img.jpeg

【问题讨论】:

  • 在本地运行此代码会生成与输入文件相同的输出文件。您确定这是您正在运行的代码吗?
  • 是的,我只是复制粘贴了我的代码并测试了几次。我的 python 版本是 2.7.13。会不会是问题?
  • 我也在运行 2.7.13
  • 发现问题了,问题是,应该是写文件中的“wb”。如果我把它改回“w”,那么文件不可读,如果我把它改回“wb”,那么它又可以工作了。

标签: python base64


【解决方案1】:

尝试将写入模式更改为"wb"。您现在正在以不同的格式书写和阅读。

【讨论】:

    猜你喜欢
    • 2015-01-16
    • 2010-09-17
    • 2016-10-23
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 2011-11-14
    • 2016-05-28
    • 2012-07-25
    相关资源
    最近更新 更多