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

Резултати

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

Пребарај: #gail

当前筛选 #gail清除筛选
Кофе и бензин

@cogasoline · Post #142 · 29.08.2024 г., 06:03

Министерство нефти Индии рассматривает возможность создания независимого оператора ЕСГ Times of India сообщает, что министерство нефти Индии рассматривает план по созданию единого независимого оператора для управления Единой системой газоснабжения. Сейчас магистральные газопроводы принадлежат разным компаниям, которые одновременно могут выступать и импортерами, и поставщиками природного газа для конечных потребителей. Такое совмещение конкурентных и монопольных (транспортировка) видов деятельности иногда приводит к тому, что компания-оператор газопровода отказывает конкурентам в предоставлении услуг транспортировки даже при наличии свободных мощностей - при этом по оценкам Миннефти средний уровень использования мощностей газопроводов сейчас не превышает 75%. По этому пути уже пошел Китай, создавший в 2020 г. единого оператора ГТС PipeChina. Как показывает китайский опыт, выделение транспортного бизнеса из действующих интегрированных компаний и его последующее объединение является непростой задачай: потребуется проведение оценки и переговоров с акционерами, изменение тарифной системы и регулирования. В Индии крупнейшими (по объемам транспортировки) операторами магистральных газопроводов являются государственные Gas Authority of India Ltd (GAIL) и Gujarat Gas Ltd (GSPC), в целом же в секторе работают свыше 10 крупных компаний. Часть задачи уже решена - в 2023 г. Индия в рамках плана "One Nation, One Grid and One Tariff" перешла к единым тарифам для всех межрегиональных газопроводов, введя три тарифные зоны (в зависимости от дальности транспортировки) и общую тарифную ставку для всех операторов ГТС ($3,1/тыс. м3-100 км). Осталось только договориться об оценке транспортных активов. Создание независимого оператора ГТС ускорит либерализацию газового рынка Индии, создав новые возможности для иностранных поставщиков, включая российские "Новатэк" и "Газпром". #Индия#GAIL#Газ

🚢GAIL закупает СПГ в Омане для поддержания газовых поставок в Индию. Индийская энергетическая компания GAIL приобрела партию сжиженного природного газа из Омана, чтобы компенсировать перебои поставок после ограничений транзита через Ормузский пролив. По данным участников рынка, груз СПГ был приобретён у европейского трейдера по цене $17–20 за млн БТЕ с поставкой на следующей неделе. Поставка осуществляется на судне “Orion Hugo”, зафрахтованном Shell, которое должно прибыть в Индию сегодня, 15 марта. Индия покрывает примерно половину своего спроса на газ за счёт импорта. До недавнего времени около 60 млн куб. м газа в сутки поступало из стран Ближнего Востока. Перебои поставок после объявления форс-мажора крупнейшим поставщиком — QatarEnergy — вынуждают страну искать альтернативные источники. На фоне кризиса индийские власти перераспределяют газ в пользу приоритетных отраслей, ограничивая поставки в менее критичные сегменты. Для морского рынка это означает рост краткосрочного спроса на СПГ-танкеры и усиление конкуренции за доступные грузы на спотовом рынке. 📌GAIL (India) Limited — крупнейшая государственная газовая компания Индии, основанная в 1984 году. Компания контролируется правительством Индии через Министерство нефти и природного газа. #LNG#IndiaEnergy#GAIL#GasShipping#EnergySecurity