Struct.pack и encode выдают одну и ту же байтовую строку? Python

#python #struct #byte #encode #binary-data

#python #struct #байт #encode #двоичные данные

Вопрос:

Я совсем запутался в разнице между struct.pack() и encode . Насколько я понимаю, выходные данные обоих struct.pack() и encode являются байтовыми строками. И это struct.pack() используется для преобразования чисел в байты, в то время encode как используется для преобразования строки в байты. Правильно ли я понимаю?

Тогда что, если, когда вы struct.pack('format',something) и something.encode('utf-8') which возвращаете одну и ту же байтовую строку. Тогда как вы определяете, представляет ли байтовая строка число или строку? например:

 bstring = b'xc3xa9'
a = bstring.decode('utf-8')
b = struct.unpack('>H',bstring)
print(a,b)

>>>é (50089,)   #see, using different converting methods return different results