如何从 base64 编码重建文件?
How to reconstruct a file from base64 encoding?
我正在尝试使用 base64 对文件进行编码,然后发送编码数据并在另一端重建文件。例如,我想打开我桌面上的一个 .png 文件,对其进行编码,然后对其进行解码,并将新的 .png 文件保存在不同的目录中。
我被推荐使用以下文章,但我收到了一个错误,如下所示:https://www.programcreek.com/2013/09/convert-image-to-string-in-python/
import base64
with open('path_to_file', 'rb') as imageFile:
x = base64.b64encode(imageFile.read())
fh = open('imageToSave.png', 'wb')
fh.write(x.decode('base64'))
fh.close()
File "directory", line 7, in <module>
fh.write(x.decode('base64'))
LookupError: 'base64' is not a text encoding; use codecs.decode() to handle arbitrary codecs
我尝试在 Whosebug 上寻找类似的问题,但我不了解其他解决方案并且无法在我的案例中实施它们。如果有更好的方法来完成此任务,请告诉我。
为什么使用 decode
而不是 base64.b64decode()
?
因为效果很好:
>>> base64.b64encode(b"foo")
b'Zm9v'
>>> base64.b64decode('Zm9v')
b'foo'
或者,在您的情况下:
import base64
with open('path_to_file', 'rb') as imageFile:
x = base64.b64encode(imageFile.read())
fh = open('imageToSave.png', 'wb')
fh.write(base64.b64decode(x))
fh.close()
Python 2 和 3 在这里是有区别的。 str.decode('base64')
似乎在 Python 2 中有效,但在 3 中无效。
我正在尝试使用 base64 对文件进行编码,然后发送编码数据并在另一端重建文件。例如,我想打开我桌面上的一个 .png 文件,对其进行编码,然后对其进行解码,并将新的 .png 文件保存在不同的目录中。
我被推荐使用以下文章,但我收到了一个错误,如下所示:https://www.programcreek.com/2013/09/convert-image-to-string-in-python/
import base64
with open('path_to_file', 'rb') as imageFile:
x = base64.b64encode(imageFile.read())
fh = open('imageToSave.png', 'wb')
fh.write(x.decode('base64'))
fh.close()
File "directory", line 7, in <module>
fh.write(x.decode('base64'))
LookupError: 'base64' is not a text encoding; use codecs.decode() to handle arbitrary codecs
我尝试在 Whosebug 上寻找类似的问题,但我不了解其他解决方案并且无法在我的案例中实施它们。如果有更好的方法来完成此任务,请告诉我。
为什么使用 decode
而不是 base64.b64decode()
?
因为效果很好:
>>> base64.b64encode(b"foo")
b'Zm9v'
>>> base64.b64decode('Zm9v')
b'foo'
或者,在您的情况下:
import base64
with open('path_to_file', 'rb') as imageFile:
x = base64.b64encode(imageFile.read())
fh = open('imageToSave.png', 'wb')
fh.write(base64.b64decode(x))
fh.close()
Python 2 和 3 在这里是有区别的。 str.decode('base64')
似乎在 Python 2 中有效,但在 3 中无效。