TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #241 · 5 мај

Можно ли в 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

Hashtags

Резултати

Пронајдени 3 слични објави

Пребарај: #maritimeinfrastructure

当前筛选 #maritimeinfrastructure清除筛选

🚢Судно "Mighty Servant 3" - доставило 18-тысячный плавдок в Нидерланды. Голландская морская компания Boskalis осуществила трансатлантическую транспортировку нового плавучего сухого дока грузоподъёмностью 18 000 тонн для верфи Shipyard Reimerswaal. Перевозка была выполнена полупогружным судном-тяжеловозом “Mighty Servant 3”. Погрузка проходила в порту Freeport (Багамы): судно балластировалось и погружало палубу ниже уровня воды, после чего плавдок длиной 168 метров был заведён на палубу. После откачки балласта конструкция была поднята и закреплена для перехода через Атлантику. После прибытия в Flushing (Vlissingen) разгрузка была проведена методом "float-off" — док был снова спущен на воду и отбуксирован к месту установки на верфи. Новый док размером 168 × 38 метров - значительно увеличит возможности Shipyard Reimerswaal, позволяя обслуживать более крупные суда и укрепляя позиции верфи на европейском рынке судоремонта. Для рынка тяжёлых морских перевозок операция подтверждает важность специализированных полупогружных судов при транспортировке крупногабаритной портовой и офшорной инфраструктуры. 📌Royal Boskalis Westminster N.V. — нидерландская морская компания, основанная в 1910 году, специализируется на дноуглублении, морских перевозках тяжёлых грузов и офшорной инфраструктуре. Компания является публичной; контрольный пакет принадлежит инвестиционной группе HAL Holding - основной акционер и контролирующая сторона — семейство Ван дер Ворм (Van der Vorm). Исторически состояние семьи связано с судоходной компанией Holland America Line, откуда и происходит название HAL. После продажи Holland America Line капитал семьи был направлен в инвестиционный холдинг, который стал HAL Holding. Через HAL семья инвестирует в разные отрасли: розничную торговлю, недвижимость, морской бизнес, промышленность и другие активы. Наиболее известный представитель — Мартин Ван дер Ворм (Martijn van der Vorm), его часто упоминают как одного из ключевых членов семьи и крупных голландских инвесторов. #HeavyLift#Boskalis#ProjectCargo#ShipRepair#MaritimeInfrastructure

🚢Logistec приобретает терминал IPA в Альтамире — выход на рынок Латинской Америки. Канадская логистическая группа Logistec Corporation объявила о покупке терминала IPA Terminal в порту Альтамира (Мексика), специализирующегося на перевалке навалочных грузов и металлопродукции. Сделка знаменует первое стратегическое расширение Logistec в Латинской Америке и усиливает позиции компании в сегменте генеральных и проектных грузов, включая сталь. Порт Альтамира - является одним из ключевых индустриальных хабов Мексики на побережье Мексиканского залива и играет важную роль в региональной металлургической и производственной цепочке поставок. Стратегическое расширение Logistec означает: ✔️ Расширение в Мексику - усиление присутствие Logistec в зоне USMCA. ✔️ Сегмент балкерных грузов остаётся стратегическим для инфраструктурных и энергетических проектов. ✔️ Диверсификация географии снижает зависимость от североамериканского рынка. 📌Logistec Corporation основана в 1952 году в Канаде. Компания является публичной (TSX) и контролируется семьёй Пакуин (Paquin), которая сохраняет контрольный пакет через семейный холдинг. #Breakbulk#PortExpansion#Mexico#Logistics#MaritimeInfrastructure

🚢Порт Барселоны объявил тендер на концессию универсального терминала. Порт Barcelona начал процедуру конкурса на предоставление концессии для публичного многофункционального морского терминала на причале Príncep d’Espanya. Решение принято после истечения срока предыдущей концессии в начале года. Согласно условиям, терминал должен обслуживать генеральные и смешанные грузы, исключая специализированные сегменты — пассажирские перевозки (кроме профессиональных водителей), навалочные и наливные грузы. Установлен минимальный объём неконтейнеризированного генерального груза, чтобы избежать концентрации исключительно на контейнерных операциях, уже обеспечиваемых другими терминалами порта. Инфраструктура площадью 87 425 кв. м должна включать не менее трёх современных мобильных кранов и шести комплектов вспомогательного оборудования. Дополнительные инвестиции в технику станут обязательными при превышении порогов 15 000 TEU в год или 50 000 тонн грузов типа Ro-Ro. Концессия рассчитана на 16 лет с возможностью досрочного расторжения с 10-го года в случае необходимости реорганизации портовой зоны. Для рынка это отражает стратегию диверсификации грузопотоков и усиления гибкости портовой инфраструктуры в условиях колебаний контейнерного сегмента и роста смешанных логистических операций в Средиземноморье. 📌Port de Barcelona — государственный порт Испании, основанный в современном административном формате в 1992 году, управляется Портовой администрацией Барселоны (Autoritat Portuària de Barcelona). Является одним из ключевых логистических хабов Средиземноморья. #PortBarcelona#TerminalConcession#GeneralCargo#MediterraneanPorts#MaritimeInfrastructure