Оценка размера двоичных данных, закодированных как строка B64 в Python - PullRequest
1 голос
/ 22 июля 2011

Итак, у меня есть некоторые двоичные данные в python (в данном случае изображение jpg), которые я получаю из API в виде строки в кодировке B64.Есть ли простой способ оценить размер этого файла (образа) на диске?

<Image>/9j/4AAQSkZJRgABAgEASABIAAD/4RriRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA
AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAeAAAAcgEyAAIAAAAUAAAAkIdp
AAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9z ....... </Image>

Ответы [ 2 ]

8 голосов
/ 22 июля 2011

Вы можете умножить длину строки на 3/4, чтобы получить размер в байтах.

(len(str) * 3) / 4
0 голосов
/ 02 июля 2015

Я использую это:

def size(b64string):
    return (len(b64string) * 3) / 4 - b64string.count('=', -2)

Удаляем длину отступа, которая равна либо нет, либо одному, либо двум символам =, как объяснено здесь .

Вероятно, не оптимально.Я не знаю, насколько эффективен str.count(char).С другой стороны, он выполняется только для строки длиной 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...