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

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

  • Использование Python & XML-RPC для добавления настраиваемого поля в сообщение Wordpress?
  • Joomla и XMLRPC
  • Как установить xmlrpclib в python 3.4?
  • Создает ли новый пост Wordpress с настраиваемыми типами сообщений и настраиваемыми полями через XML-RPC?
  • Установить тайм-аут для xmlrpclib.ServerProxy
  • XML-RPC C # и Python RPC-сервер
  • Использовать Python xmlrpclib с сокетами домена unix?
  • Ведение журнала сервера XML-RPC
  • 5 Solutions collect form web for “Как base64 кодирует PDF-файл в Python”

    ПРИМЕЧАНИЕ. Это копия Пат Нотца, принадлежащая сообществу-вики. Этот ответ может быть выбран в качестве выбранного ответа. Изменить свободно, чтобы улучшить.

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

    На самом деле, после некоторого дополнительного копания, похоже, что модуль 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 (данные)

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

    Python - лучший язык программирования в мире.