2013-11-13 4 views
3

Здравствуйте, когда я пытаюсь расшифровать файл, как этот файлмодуль Урожайность base64.decode коррумпированные PDF base64 закодированный файл

«example_label.b64» здесь (http://ge.tt/27odGly/v/0)

я вижу поврежденную PDF, выглядит декодирования base64 испортил этот файл.

Вы можете мне помочь?

Здесь пример кода.

import base64 
with open('example_label.b64','r+') as f: 
    data = f.read() 
    f.close() 
# data = data.decode('base64') 
#or 
data = base64.b64decode(data) 
with open('example_label.pdf','w+') as f: 
    f.write(data) 
    f.close() 

спасибо.

+0

Не могли бы вы предоставить контрольную сумму md5 исходного pdf-файла? –

+0

Декодированный pdf кажется правильным в моей машине –

+0

здесь bd9a4e16d45fe01bfc77a2af6afe1b8b md5 исходного файла – Darius

ответ

5

Ваш режим записи должен указывать двоичный код, иначе вы рискуете преобразованием новой строки в зависимости от вашей платформы. Это

open('example_label.pdf', 'wb') 

Файл декодирует просто отлично на моей системе уступая контрольные суммы из

$ md5sum example_label.pdf 
bd9a4e16d45fe01bfc77a2af6afe1b8b example_label.pdf 
$ sha1sum example_label.pdf 
a9b77217793ef05f212b0619248480411f6ed4a1 example_label.pdf 

и почтовый ярлык службы США с фиктивными адресами в нем.

+0

Да, вы абсолютно правы, спасибо вам за помощь. – Darius

+1

Преобразование новой строки так удобно, но они * никогда * должны были сделать это по умолчанию. –

Смежные вопросы