Можно ли в 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
⚡️Правительство Испании только что официально объявило территорию, пострадавшую этим летом от лесных пожаров и паводков, зоной, пострадавшей в результате чрезвычайной ситуации («катастрофической»), чтобы ускорить оказание помощи и предоставление налоговых льгот жителям.
На пресс-конференции после заседания Совета министр внутренних дел Фернандо Гранде-Марласка заявил, что зонами ЧС объявлены «территории, которые с 23 июня пострадали от любого из 113 крупных лесных пожаров, зарегистрированных этим летом», а также пять территорий, пострадавших от наводнений или сильных дождей в конце июня.
☝️Вот что еще важно. Планируется в самом ближайшем будущем увеличить размеры выплат для пострадавших как от природных бедствий, так и других чрезвычайных ситуаций: последние пособия не пересматривались с 2005 года и считаются устаревшими. Сейчас семьям погибших или полностью нетрудоспособных выплачивают по 18 000 евро, максимум за разрушенное жильё — 15 120 евро, за серьёзно повреждённое — 10 320, на бытовые нужды — 2 580 евро.
Для зон катастроф предоставляются и налоговые послабления: освобождение от налога на недвижимость, снижение налога на предпринимательскую деятельность для пострадавших предприятий и фермерских хозяйств. @amigokonon#incendios
Вчера вечером тысячи граждан вышли на протесты в 26 городах и селах автономного сообщества Галисия, выражая недовольство тем, как региональные власти борются с лесными пожарами, передает El País (местные СМИ пишут о 28 населенных пунктах и 45.000 вышедших на протесты). Демонстрации организовала платформа «За галисийский лес с будущим», объединяющая более 50 общественных и экологических организаций, а также крупнейший профсоюз региона.
Самые массовые протесты прошли в Ла-Корунье, где демонстранты скандировали лозунги с требованием отставки главы региона Альфонсо Руэды (Partido Popular). Участники акций критиковали «некомпетентность» его правительства в тушении пожаров, которые опустошили в провинции Оренсе деревни, предприятия и территории большой экологической ценности. Основной лозунг протестующих звучал как «Галисия горит, Руэда виноват» («Galicia arde, Rueda responsable»).
☝️К демонстрации в Виго присоединилась даже вице-премьер правительства Испании Йоланда Диас. Она осудила то, что работа пожарных служб основана на «трудовой нестабильности», и назвала «варварством» передачу служб пожаротушения в частные руки, как это происходит в Галисии и Кастилии-и-Леоне. По ее словам, пожарным нужны бессрочные контракты и адекватный отдых.
Руэда ранее прокомментировал участие Диас в протестах, заметив, что «хорошо, что она прервала отпуск ради демонстрации, хотя до сих пор не делала этого [из-за пожаров]». Глава Галисии также раскритиковал министра внутренних дел Фернандо Гранде-Марласку и назвал «бредом» обвинения в якобы запоздалой просьбе о помощи.
▫️Протесты в Галисии стали продолжением волны недовольства управлением лесными пожарами в северо-западной и западной Испании, которая охватила регион в последние две недели. @amigokonon#incendios
Несмотря на крупные лесные пожары в Галисии, все маршруты знаменитого паломничества Камино де Сантьяго остаются безопасными и проходимыми, сообщает El Confidencial. К некоторым участкам пути, особенно в провинции Оренсе, огонь подошел близко, но основную инфраструктуру путей он не повредил.
Главный «французский маршрут», по которому идут большинство паломников, полностью доступен от начала до конца. Пострадали только отдельные указатели и деревянные ограждения, которые власти планируют быстро восстановить. Небольшие очаги огня еще тлеют в отдаленных районах, но они не угрожают туристам. В некоторых местах сами тропы помогли пожарным, послужив естественными противопожарными барьерами. @amigokonon#incendios
После почти недели перерыва из-за лесных пожаров сегодня было возобновлено железнодорожное сообщение между Мадридом и Галисией, передает издание Faro de Vigo.
В течение последних дней регион испытывал серьезнейшие проблемы с транспортной достуностью. Некоторые автодороги также перекрывались из-за пожаров, а стоимость авиабилетов взлетела до 450 евро. Многие туристы были вынуждены продлевать свое пребывание в Виго, поскольку все билеты на поезда были уже распроданы на оставшуюся часть августа. @amigokonon#incendios
К сожалению, пожары в разных регионах страны остаются главным информационным поводом в Испании за последние дни. И вот появились первые цифры ущерба, а также вероятный прогноз того, как огненная стихия скажется на сельском хозяйстве.
Экономические потери от пожаров в северо-западных регионах Испании уже превысили 1,2 миллиарда евро. Больше всего пострадали сельское хозяйство и животноводство в Галисии, Кастилии-и-Леоне и Эстремадуре, где огонь уничтожил более 380 тысяч гектаров земли.
❗️По данным экспертов, на которых ссылается elPeriódico, тысячи голов крупного рогатого скота и сотни тысяч голов овец погибли в пламени. Серьезно пострадало пчеловодство - за последние дни в огне сгорело более 6 тысяч ульев, главным образом в Кастилии-и-Леоне и провинции Самора.
Фермеры оказались в двойном капкане. Мало того что они потеряли скот, урожай и пастбища, теперь, согласно правилам Единой сельскохозяйственной политики ЕС, сгоревшие земли на ближайшие два года станут неподходящими для получения субсидий. Это означает, что скотоводы не смогут использовать эти территории для выпаса и лишатся господдержки.
▫️Представители аграрных организаций предупреждают, что многие фермерские хозяйства могут окончательно закрыться из-за невозможности прокормить скот на сгоревших пастбищах. Владельцам придется как минимум в течение одного года покупать дорогие корма, а пожилые фермеры, составляющие значительную часть отрасли, скорее всего, просто прекратят деятельность.
▫️Эксперты отмечают, что нынешние пожары стали самыми разрушительными за 30 лет - площадь выгоревших земель в девять раз превысила потери за весь прошлый год. По их словам, на восстановление пострадавших регионов понадобятся годы, а проблема массовых пожаров стала хронической и требует создания национального плана борьбы с огнем. @amigokonon#incendios
⚡️Президент правительства (премьер-министр) Испании Педро Санчес сообщил, что в следующий вторник, 26 августа, правительство объявит несколько регионов, пострадавших от пожаров в последние недели, зоной катастрофы. Речь идет о механизме, официально известном как «зона, серьезно пострадавшая от чрезвычайной ситуации».
Что означает объявление зоны катастрофы с точки зрения испанского законодательства?
В испанском праве объявление территории «зоной катастрофы» или «зоной, серьезно пострадавшей от чрезвычайной ситуации гражданской защиты», активирует специальные механизмы государственной помощи. Это означает:
▫️Финансовую поддержку от центрального правительства пострадавшим регионам для восстановления инфраструктуры и компенсации ущерба
▫️Упрощенные административные процедуры для получения помощи и субсидий
▫️Налоговые льготы и отсрочки для пострадавших физических и юридических лиц
▫️Приоритетное выделение государственных ресурсов на восстановительные работы
▫️Координацию усилий между различными уровнями власти — центральным правительством, автономными сообществами и муниципалитетами
▫️Возможность привлечения европейских фондов для преодоления последствий стихийного бедствия
Ранее правительство Испании применило такую же меру после катастрофических наводнений в Валенсии 29 октября 2024-го года. @amigokonon#incendios
А теперь о пожарах и о деньгах.
▫️Месячная зарплата лесного пожарного в Кастилии-и-Леоне составляет около 1300 евро, и эта сумма достигается только за счет сверхурочных, а также доплат за опасность и работу в ночное время.
▫️Правительство Кастилии-и-Леона выделяет на противопожарные мероприятия около 125 миллионов евро в год, что составляет примерно 20 евро на гектар лесных угодий. Эти расходы почти в два раза ниже, чем в Галисии, и значительно уступают расходам в Андалусии, где на гектар тратится 88 евро.
▫️По данным WWF, из примерно 1,1 миллиарда евро, ежегодно выделяемых центральным правительством Испании и автономными сообществами на борьбу с лесными пожарами, «около 60–70% направляется на их тушение».
▫️Организация Greenpeace подсчитала, что инвестирование 1 миллиарда евро в профилактику пожаров «может сэкономить до 99 миллиардов евро на тушении».
По информации газеты El Diario.@amigokonon#incendios
Вчера поздно вечером министр внутренних дел Испании Фернандо Гранде-Марласка в интервью телеканалу Cadenaser сообщил, что правительство в качестве превентивной меры запросило у Европейского союза два противопожарных самолета для борьбы с лесными пожарами, при этом заверив, что в стране достаточно собственных сил и средств. Он подчеркнул, что управление чрезвычайными ситуациями находится в компетенции регионов, и центральное правительство возьмет на себя командование, только если регион окажется не в состоянии справиться с ситуацией.
👉Полный текст интервью в переводе «Испанского амиго» вы можете прочитать здесь.
Тем временем, как пишет El País, пожарные в Кастилии-и-Леоне жалуются на нестабильные условия труда и отсутствие координации в работе регионального правительства. В первую очередь, они указывают на общую нехватку средств и ресурсов для тушения, а также на ужасные условия труда. Пожарные вынуждены работать по 17 часов без перерыва, спать всего по три-четыре часа, а также часами обходиться без еды и питьевой воды, из-за чего им приходится пить из садовых шлангов и есть то, что дают местные жители. Кроме того, они недовольны низкой оплатой труда и плохой координацией действий со стороны руководства. По их словам, им часто поступают непонятные приказы, а иногда их и вовсе оставляют бездействовать, в то время как огонь подступает к населенным пунктам. @amigokonon#incendios
Испанская ассоциация потребителей (Asescon) потребовала объявить населённые пункты, пострадавшие от пожаров последних дней, зонами катастрофы с целью покрытия компенсаций за причинённый ущерб.
Источник:20Minutos. @amigokonon#incendios
❗️Только что подписчик и наш друг Гумар Зайнуллин прислал это сегодняшнее видео из галисийской провинции Oренсе, с автодороги вблизи города Verín. На кадрах отчетливо видно, как огонь лесного пожара распространяется прямо вдоль трассы. Примечательно, что никто пожар не тушит: вероятно, у местного правительства попросту для этого не хватает ресурсов.
▫️Именно в провинции Оренсе наряду с провинцией Леон полыхает большинство из пожаров в Испании. Волна лесных пожаров в Галисии, которая до сих пор не контролируется, уничтожила более 11 500 гектаров, в основном в Оренсе.
Пожалуйста, присылайте нам в редакцию свои новости, фото и видео происходящих событий. Возможен гонорар. Контакт в профиле. @amigokonon#incendios
⚡️❗️Массовая эвакуация населения в Леоне из-за пожара, охватившего провинцию. Ухудшение погодных условий и продвижение огня заставили эвакуировать около двадцати деревень. Более 5000 человек были вынуждены покинуть свои дома за последние часы. Разразилась сухая гроза с очень небольшим количеством дождя, сильным ветром с порывами и множеством молний, что осложняет работы по тушению пожара. Об этом с места событий рассказывают журналисты elDiario.es в Кастилии-и-Леоне. @amigokonon#incendios
Тема пожаров не сходит со страниц испанских СМИ. Многие издания пишут, что возгорания в лесу часто имеют искусственное происхождение. А как вам вот такая история?
Гражданская гвардия задержала мужчину, который признался в том, что умышленно поджёг лес между населёнными пунктами Cuevas del Valle и Mombeltrán в провинции Ávila 28 июля, пишет El Confidencial.
❗️Мотивом преступления стали «трудовые интересы»: задержанный ранее работал в службе тушения лесных пожаров и получил новую работу через десять дней после возникновения организованного им пожара.
То есть, еще раз: мужик поджёг лес для того, чтобы получить работу.
▫️ Пожар, который начался в 28 июля в густо засаженной лесом зоне, потребовал мобилизации значительных сил для тушения и дважды заставил власти эвакуировать жителей городков Mombeltrán и El Arenal. @amigokonon#incendios