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

Пребарај: #intellij

当前筛选 #intellij清除筛选
科技&趣闻&杂记

@kejiqu · Post #3646 · 18.07.2025 г., 08:35

不再区分社区 / 旗舰版,Jetbrains IntelliJ IDEA 集成开发环境将迁移到统一发行版 Jetbrains于7月18日宣布IntelliJ IDEA将统一发行版,不再区分社区版和旗舰版。新模式下,用户将获得单一安装程序。无订阅情况下,IDE所有功能可供商业和非商业项目免费使用;订阅模式则可解锁全部旗舰版功能。此次调整分为三步推进,包括在GitHub上启用CI/CD管道、更新Ultimate用户许可体验,以及自IntelliJ IDEA 2025.3版本起停止单独发行社区版。官方称此举旨在提升产品质量、减少混淆,并简化教育用户的使用。IT之家 🏷#IntelliJ#IDEA#统一发行版#社区版 📢频道👥群组📝投稿

GitHub Trends

@githubtrending · Post #14833 · 17.06.2025 г., 11:30

#typescript#ai#chatgpt#copilot#developer_tools#intellij#jetbrains#llm#open_source#openai#pycharm#software_development#visual_studio_code#vscode Continue is a tool that helps developers create and use custom AI assistants for coding. It integrates with popular coding tools like VS Code and JetBrains, offering features like code autocompletion, chat for understanding code, and editing capabilities. This makes coding faster and more efficient, reducing errors and improving software reliability. Users can tailor these AI assistants to their specific needs, making it easier to work with complex codebases and improve overall productivity. https://github.com/continuedev/continue