Как base64 кодировать PDF-файл в Python

Как я должен base64 кодировать PDF-файл для транспорта через XML-RPC в Python?

5 ответов


Примечание: это копия ответа Пэта Нотца, принадлежащая сообществу wiki. Этот ответ можно выбрать в качестве выбранного ответа. Редактируйте свободно, чтобы улучшить.

Пэт Нотц говорит:

на самом деле, после еще нескольких раскопок, это выглядит как xmlrpclib модуль может иметь кусок, который мне нужен с его Binary вспомогательный класс:

binary_obj = xmlrpclib.Binary( open('foo.pdf').read() )

вот пример Trac XML-RPC документация

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())) 

Если вы не хотите использовать двоичный класс xmlrpclib, вы можете просто использовать .метод encode () строк:

a = open("pdf_reference.pdf", "rb").read().encode("base64")

на самом деле, после еще нескольких раскопок, это выглядит как xmlrpclib модуль может иметь кусок, который мне нужен с ним Binary вспомогательный класс:

binary_obj = xmlrpclib.Binary( open('foo.pdf').read() )

вот пример Trac XML-RPC документация


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 библиотека, устаревший интерфейс.


Похоже, вы можете использовать binascii модуль

binascii.b2a_base64 (data)

преобразование двоичных данных в строку символов ASCII в кодировке base64. Возвращаемое значение-это преобразованная строка, включая символ новой строки. Длина данных должна быть не более 57, чтобы соответствовать стандарту base64.