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

Пребарај: #sticazzi

当前筛选 #sticazzi清除筛选
Savino Balzano

@savinobalzano · Post #697 · 09.07.2024 г., 15:52

Nel 1789 si escludeva il Terzo Stato, come oggi, ma a #Parigi meglio non scherzare troppo col fuoco. Sarò sincero con voi: non stimo l'uomo, #Letta, per nulla, ma quando ho letto questa robaccia ho pensato fosse un profilo fake. Invece no. Questa gente, gettando giù la maschera (sempre che ce ne fosse ancora bisogno, ma i tonti che ancora non capiscono sono tantissimi), ammette candidamente l'elusione della volontà popolare, la truffa, il fatto che la democrazia è il miglior sistema tra quelli sperimentati... solo se a vincere sono loro. Gridano all'#OndaNera, al ritorno del #Fascismo e poi gongolano se l'assegnazione dei seggi non rispetta la volontà popolare. Quando studiavo scienza politica sui libri di Sartori, mi insegnavano che il sistema elettorale serve a "trasformare voti in seggi": così almeno ci ripetevano nell'aula 2 di Perugia. E qualcosa del genere pure me la sono sentita durante le ore di costituzionale. E mi ricordo che, a proposito dei maggioritari, si presentavano eventi come questi francesi, descrivendoli come esternalità negative, limiti, effetti collaterali, difetti insomma della legge elettorale. Oggi sono diventati i pregi e tocca riscrivere i manuali: "Il sistema elettorale trasforma il consenso popolare, i voti, in #sticazzi", qualcosa del genere. Dopotutto parliamo di gente che c'ha il durello se pensa al vincolo esterno, al pilota automatico, al whatever it takes, ai governi dei "migliori" (mortacci loro!). Tutta sta robaccia, tutta l'esultanza che leggo dalla bocca di gente priva di qualsiasi cultura politica e civica, altèra e presuntuosa, disgustata dal popolo e dalla sua volontà, non ha nulla a che fare con la #democrazia: molta è malafede, tanta altra è semplice stupidità. Sarò sempre dalla parte di chi rispetta la volontà delle persone, dei molti, da quella di chi è autenticamente democratico e continuo ad avere ben chiara in testa l'idea che violenza e barbarie sia proprio quanto accade oggi in #Francia. Liberté, Égalité, Fraternité!: ascoltate un consiglio di un fesso, non ripetetelo troppo spesso questo motto che a lupo a lupo si sa com'è finita. Se vi prendono sul serio, siete finiti. https://x.com/SavinoBalzano/status/1810703334258745747?t=ub3t9xbfSlcraCUZB4-XaQ&s=19

Savino Balzano

@savinobalzano · Post #688 · 29.06.2024 г., 14:25

Questa mattina a Coffee Break, La7 Ci aprono una procedura di infrazione per deficit eccessivo? Dobbiamo saper rispondere #sticazzi! E lo dobbiamo fare in scioltezza. L'#Italia deve ritrovare orgoglio e dignità: non avremmo dovuto subire l'ingorda prepotenza di qualcun altro e di certo non possiamo permetterci di continuare a farlo. Non esistono soluzioni facili: non bastano due leggine per risolvere i nostri annosi problemi. Molti di quei problemi ce siamo creati da soli, accettando per stupidità o per servilismo assurdi compromessi. Basta. #lavoro#diritti#europa#commissione#deficit#caporalato https://x.com/SavinoBalzano/status/1807056685476778486?t=E9HfjCNDdU7CogMYT7sw6g&s=19