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 слични објави

Пребарај: #traderemedies

当前筛选 #traderemedies清除筛选

Американские сенаторы призывают Комиссию по международной торговле США учитывать геополитическую обстановку для оценки ущерба американской отрасли при введении мер торговой защиты. Пишут следующее: "Similar to China, Russia is a systematic abuser of international trade rules. Russia has used trade as a weapon to coerce its neighbors, taking advantage of the dependence other countries have on its exports." «Подобно Китаю, Россия систематически нарушает правила международной торговли. Россия использовала торговлю как оружие для принуждения своих соседей, пользуясь зависимостью других стран от ее экспорта». Если отвлечься от политических аргументов, то, кажется, есть в этих словах немного лукавства: - вот, trade as a weapon: мало кто использует торговые меры для принуждения в таком объёме, см., например, случай с МС-21 или другой - с Huawei; - а вот abuse of international trade rules: у США 168 споров в ВТО в качестве ответчика, при этом всего споров в организации - 611, а членов ВТО - 164. #США#санкции#ВТО#TradeRemedies#ТорговаяЗащита#споры

Торговый переговорщик

@tradenegotiator · Post #101 · 27.06.2022 г., 07:21

Минторг США принял окончательное решение о ставках антидемпинговых (AD) и компенсационных (CVD) пошлин в отношении поставок карбамидо-аммиачной смеси из России Минторг оценил размер ставок так (AD + CVD): - Акрон: 8,02 % + 9,66 % - Еврохим: 23,98 % + 6,27 % - КуйбышевАзот: 122,84 % + 8,47 % - КАО Азот: 122,84 % + 8,47 % - Все прочие: 14,82 % + 8,47 % Здесь интересны два вопроса: 1. Решение по антидемпингу - возможно, изменится из-за проходящего сейчас пересмотра статуса российской экономики на предмет "рыночности". Если Россию объявят нерыночной (NME), то размеры AD пошлины могут заметно вырасти. 2. В CVD расследовании в качестве бенчмарка для оценки преимущества, которые предположительно получают российские компании из-за "искаженного" рынка природного газа, Минторг использовал экспортные цены поставок казахстанского газа в "в неискаженные, нероссийские страны" (sic!). P.S. Интересно, что очередные ограничения на поставку удобрений из России (а вместе с ней - и Тринидада и Тобаго) введены на фоне непрекращающейся дискуссии как о мировом продовольственном кризисе, так и о проблемах с ростом цен внутри США. Демонстрация невероятного самоотречения со стороны США: закрыть доступ на рынок для российских удобрений, чтобы те перенаправились на третьи рынки, где они нужнее.#sarcasm Впрочем, у США ещё есть место для маневра: для полноценного введения пошлин требуется, чтобы US ITC приняла решение о наличии ущерба для американской отрасли из-за предположительно демпинговых и субсидируемых поставок удобрений из России и Тринидада и Тобаго. Решение по этому вопросу будет принято 18 июля. #США#удобрения#КАС#CVD#AD#ТорговаяЗащита#TradeRemedies