【发布时间】:2010-09-17 13:22:47
【问题描述】:
我应该如何对 PDF 文件进行 base64 编码,以便在 Python 中通过 XML-RPC 进行传输?
【问题讨论】:
-
这真的不是问题,因为 xmlrpclib 会为你做这件事
-
事实上,事实证明就是答案。当我问这个问题时,我只是不知道。
标签: python encoding base64 xml-rpc
我应该如何对 PDF 文件进行 base64 编码,以便在 Python 中通过 XML-RPC 进行传输?
【问题讨论】:
标签: python encoding base64 xml-rpc
如果你不想使用 xmlrpclib 的 Binary 类,你可以使用字符串的 .encode() 方法:
a = open("pdf_reference.pdf", "rb").read().encode("base64")
【讨论】:
read() 读取整个文件吗?这是它应该如何工作的吗?我无法想象用这个编码一个多 MB 或更大的文件。
base64.b64encode(open('path/to/your.pdf', 'rb').read()) 信用:stackoverflow.com/a/43084065/5125264
实际上,经过更多挖掘,看起来xmlrpclib 模块可能有我需要的部分,它是Binary 辅助类:
这是来自Trac XML-RPC documentation的示例
import xmlrpclib
server = xmlrpclib.ServerProxy("http://athomas:password@localhost:8080/trunk/login/xmlrpc")
server.wiki.putAttachment('WikiStart/t.py', xmlrpclib.Binary(open('t.py').read()))
【讨论】:
您可以使用base64 library,旧版界面来做到这一点。
【讨论】:
看来您可以使用binascii 模块
binascii.b2a_base64(数据)
将二进制数据转换为base64编码的一行ASCII字符。返回值是转换后的行,包括换行符。数据长度最多为 57 以符合 base64 标准。
【讨论】: