Использование Python 2.7 Я имел этот код:распаковывать Ошибка требует строковый аргумент длины 16
#Create a random 56 bit (7 byte) string
random_bytes = os.urandom(7)
random_bytes = int.from_bytes(random_bytes, byteorder="big")
Что дает ошибку:
AttributeError: type object 'int' has no attribute 'from_bytes'
После чтения онлайн он выглядит from_bytes
является Python 3. Так что я попытался следующее:
random_bytes = os.urandom(7)
#random_bytes = int.from_bytes(random_bytes, byteorder="big")
random_bytes = struct.unpack('>16B', random_bytes)
Но это дает следующее сообщение об ошибке:
struct.error: unpack requires a string argument of length 16
Должно ли >16B
быть >7B
? Даже при этом кажется, что он возвращает кортеж.
Цель состоит в том, чтобы использовать random_bytes
как это:
int(str(((time_bytes << 56) | random_bytes)) + code)
http://stackoverflow.com/questions/30402743/python-2-7-equivalent-of-built-in-method-int-from-bytes это помогает? – timgeb
@timgeb Нет, я уверен, '' struct.unpack'' - путь сюда – Prometheus
Вы просите структуру распаковать последовательность из 7 байтов в кортеж из 16, 8 битных целых чисел ... – thebjorn