Можно ли в Python создавать бинарные файлы? Конечно можно.
Для этого в Python есть следующие инструменты:
▫️ тип данных bytes и bytearray
▫️ открытие файла в режиме wb (write binary) или rb (read binary)
▫️ модуль struct
Про модуль struct поговорим в первую очередь.
Файл в формате JSON или Yaml внутри себя содержит разметку данных. Всегда можно определить где список начался а где закончился. Где записана строка а где словарь. То есть формат записи данных содержит в себе элементы разметки данных.
В binary-файле данные не имеют визуальной разметки. Это просто байты, записанные один за другим. Правила записи и чтения находятся вне файла.
Модуль struct как раз и помогает с организацией данных в таком файле с помощью определения форматов записи для разных частей файла.
Модуль struct преобразует Python-объекты в массив байт, готовый к записи в файл и имеющий определённый вид.
Для этого всегда следует указывать формат преобразования (или, как оно здесь называется - запаковки).
Формат нужен для того, чтобы выделить достаточное количество байт для записи конкретного типа объекта. В последствии с помощью того же формата будет производиться чтение.
При этом следует помнить что мы говорим о типах языка С а не Python.
Именно формат определяет, что записано в конкретном месте файла, число, строка или что-то еще.
Вот какие токены формата у нас есть.
Помимо этого, первым символом можно указать порядок байтов. На разных системах одни и те же типы данных могут записываться по-разному, поэтому желательно указать конкретный способ из доступных. Если этого не сделать, то используется символ '@', то есть нативный для текущей системы.
В строке формата мы пишем в каком порядке и какие типы собираемся преобразовать в байты.
Запакуем в байты простое число, токен "i".
>>> import struct
>>> struct.pack('=i', 10)
b'\n\x00\x00\x00'
Теперь несколько float, при этом нужно передавать элементы не массивом а последовательностью аргументов.
>>> struct.pack('=fff', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Вместо нескольких токенов можно просто указать нужное количество элементов перед одним токеном, результат будет тот же.
>>> struct.pack('=3f', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Теперь запакуем разные типы
>>> data = struct.pack('=fiQ', 1.0, 4, 100500)
я запаковал типы float, int и unsigned long long (очень большой int, на 8 байт)
b'\x00\x00\x80?\x04\x00\x00...'
Распаковка происходит аналогично, но нужно указать тот же формат, который использовался при запаковке. Результат возвращается всегда в виде кортежа.
>>> struct.unpack('=fiQ', data)
(1.0, 4, 100500)
Как видите, ничего страшного!
#lib#basic
Единый транспортно-логистический оператор Узбекистана 🇺🇿
Задачу по созданию такого оператора поставила правительственная комиссия во главе с вице-премьер министром Жамшидом Ходжаевым
Как считают власти, такой проект позволит снизить логистические затраты на 30% и усовершенствовать внешнеторговую логистику🚚🏘️🚂
#LOGISTICS#UZBEKISTAN
🌍 Every year, about 25 million shipping containers are moved over the world’s oceans. These box-shaped units revolutionized transport geography by making global trade faster and more efficient. ✨
#transport⚡#logistics⚡#shipping⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
Дефицит складов в Казахстане🇰🇿
Нехватка складов в ЦА продолжается, например в Казахстане остался 1% свободных площадей, а ставки за кв.м "бьют рекорды"
По оценкам NF Group, в ближайшие два года в Казахстане девелоперы введут в эксплуатацию меньше новых складов — всего 102 тыс. кв. м, тогда как объем спроса в 2023-2025 годах достигнет 700 тыс. кв. м. 📈
#LOGISTICS#KAZAKHSTAN
🇰🇿⛴🇪🇺 Казахстан готов передать порты на Каспии под управление компаний из ЕС
Министр транспорта Казахстана Марат Карабаев и еврокомиссар по транспорту Адина Вэлян рассмотрели вопросы, касающиеся передачи портов Актау и Курык в доверительное управление на условиях ship-or-pay
Ранее Марат Карабаев заявлял о передачи оставшихся 22 аэропортов Казахстана под управления европейских инвесторов.
Напомним, что аэропорты Алматы и Астаны уже находятся под управлениями зарубежными компаниями.
Таким образом, все крупнейшие логистические узлы Казахстана будут в "руках" зарубежных инвесторов, конечно если правительству Казахстана удастся договориться.
#LOGISTICS#KAZAKHSTAN
CDEK открыл 2 новых фулфилмент центра в Казахстане 🇰🇿
Два новых склада фулфилмента открылось в Астане и в Алматы. Они позволят увеличить количество собранных и обработанных заказов в стране минимум в пять раз.
На сегодняшний день в Казахстане работали два склада фулфилмента СДЭК. Новый комплекс в Алматы рассчитан на объемы до 1000 заказов в сутки, а в Астане — до 1500 заказов в день.
#LOGISTICS#KAZAKHSTAN
Логистика Казахстана 2024🇰🇿
Конец года и все подводят итоги, а это значит, что выходит много интересных интервью 🎤
А про логистику Казахстана всегда интересно слушать, читать и наблюдать👀
Во вложении интервью от LogiStan и от Марата Шибутова
#LOGISTICS#KAZAKHSTAN #2023
Бизнес дайджест от Chinaccelerator 06/10/2021
1. China’s carbon neutral goal: Shanghai aims to have 10,000 h
2. Alibaba Cloud offers to build livestream shopping platforms for global clients
3. Tencent to reposition short-video app Weishi to focus on movie content
4. Food delivery giant Metiruan plans to hire 60,000 execs
5. China’s Oriental Space secures funding from Matrix, Sequoia, others
6. BukuWarung, a fintech for Indonesian MSMEs, scores $60M Series A led by Valar and Goodwater
7. Indian startup funding falls 57% to $1.8b in May amid second COVID19 wave
8. Refyne raises $20.1 million to help workers in India get faster access to wages
9. SG fintech firm MatchMove raises $100m from Nityo Infotech
10. Shopee expands in Latin America with silent launches in Chile, Colombia
11. European Tesla rival Northvolt raises $2.75 billion from Goldman, VW and others
Check out all 47 tech-related news articles covering #gaming#fooddelivery#logistics, etc, at https://chinaccelerator.com/news-posts/chinaccelerator-daily-digest-06-10-2021/ You can find the original articles' links there.
Вчера провели вебинар, посвященный использованию LOGAREON WMS по модели On-Premise.
Продемонстрировали работу мультитенанта, модуль BI и подсистему WCS, ответили на самые волнующие вопросы.
#wms#logareon#Logistics#wcs
https://youtu.be/8qvo9W4mLek?si=HQ-jaKUz9XMgLwP1
⚡️⚡️⚡️
Для наших любимых заказчиков записали видеоинструкцию по самостоятельной настройке и выполнению операций входящего потока в #самойлучшейWMS
❤️❤️❤️
Верим, что, имея доступ к такой простой и понятной инструкции, настроить систему в какой-то перспективе будет легче, чем научить медведя🐻 кататься на велосипеде🚴♂️😄
#logareon#Logistics#WMS #
https://dzen.ru/video/watch/65708abc6aba5b2d76d4e650?share_to=link
Safe Air Transport (SAT) ✈️🇳🇬🇷🇺
Abuja to Moscow
6th September 2024
Lagos to Moscow
30th of September 2024
Students/VIP with advance booking enjoy special rates of up to 40% discount
Use "SAT" to get the best deal on cargo transportation and flight bookings from Nigeria to Russia, from Russia to Nigeria and between various cities in Russia.
+79262385618
https://t.me/nido_russia/1784
#sat#logistics#waybill
Safe Air Transport (SAT)✈️🇳🇬🇷🇺
Abuja to Moscow
5th of September 2024
Lagos to Moscow
5th of September 2024
Students/VIP with advance booking enjoy special rates of up to 40% discount
Use "SAT" to get the best deal on cargo transportation and flight bookings from Nigeria to Russia, from Russia to Nigeria and between various cities in Russia.
+79262385618
https://t.me/nido_russia/1782
#sat#logistics#waybill
Safe Air Transport (SAT) ✈️🇳🇬🇷🇺
Abuja to Moscow
2nd September 2024
Lagos to Moscow
5th of September 2024
Students/VIP with advance booking enjoy special rates of up to 40% discount
Use "SAT" to get the best deal on cargo transportation and flight bookings from Nigeria to Russia, from Russia to Nigeria and between various cities in Russia.
+79262385618
https://t.me/nido_russia/1782
#sat#logistics#waybill