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

Резултати

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

Пребарај: #gnu

当前筛选 #gnu清除筛选
2.5次元日常 🍉

@acgndaily · Post #50033 · 04.04.2026 г., 12:59

Gentoo GNU/Hurd 不是愚人节玩笑 2026-04-04 17:09 by 影子之舞 4 月 1 日愚人节,Gentoo Linux 项目宣布将把 GNU Hurd 作为其主要内核。这并非完全是愚人节玩笑,它真的发布了 Gentoo GNU/Hurd 移植版本。基于微内核架构的 GNU Hurd 至今有逾 35 历史,但 1.0 版本还未发布,最新版本是 2016 年的 v0.9。Gentoo 项目表示它的 GNU/Hurd 版本仍然处于实验阶段,建议想要尝试的用户通过 QEMU 模拟器运行,当然也可以挑战直接在硬件上运行。 https://www.gentoo.org/news/2026/04/01/gentoo-hurd.html https://www.gnu.org/software/hurd/ #GNU

Hashtags

Linuxgram 🐧

@linuxgram · Post #18698 · 07.05.2026 г., 11:03

📰 New GCC Back-End Proposed For WebAssembly When it comes to compiling C/C++ code to WebAssembly (WASM), LLVM/Clang and other LLVM-based tooling has dominated the space. Nearly a decade ago was a proposal for a GCC WebAssembly back-end that ultimately never ended up being merged while now there is a new proposal for a WebAssembly back-end for the GNU toolchain... 🔗 Source: https://www.phoronix.com/news/GCC-WASM-WebAssembly #gnu

Hashtags

Linuxgram 🐧

@linuxgram · Post #18500 · 20.04.2026 г., 16:19

📰 GNU Coreutils 9.11 Brings New Performance Improvements: Up To 15x Faster cat It's not only the uutil's Rust Coreutils project seeing performance improvements but some increased healthy competition now from GNU Coreutils. With today's release of GNU Coreutils 9.11 the wc command is up to multiple times faster and even cat can be up to 15 times faster... 🔗 Source: https://www.phoronix.com/news/GNU-Coreutils-9.11 #gnu

Hashtags

Linuxgram 🐧

@linuxgram · Post #18470 · 17.04.2026 г., 13:36

📰 Glibc Lands A Big Optimization For LoongArch CPUs Loongson's LoongArch processors are running decent in our recent Loongson 3B6000 benchmarks but even better performance is on the way with the next GNU C Library "glibc" release... 🔗 Source: https://www.phoronix.com/news/Faster-LoongArch-glibc-THP #gnu

Hashtags

Linuxgram 🐧

@linuxgram · Post #18355 · 08.04.2026 г., 17:44

📰 GNU nano 9.0 CLI Text Editor Released with New Features and Improvements GNU nano 9.0 command line text editor for Unix-like systems is now available for download as a major update introducing new features and improvements. Here’s what’s new! 🔗 Source: https://9to5linux.com/gnu-nano-9-0-cli-text-editor-released-with-new-features-and-improvements #gnu

Hashtags

Linuxgram 🐧

@linuxgram · Post #18329 · 07.04.2026 г., 07:07

📰 Rust Coreutils 0.8 Brings Significant Performance Gains Rust Coreutils 0.8 was released today as the newest major release to this alternative to GNU Coreutils... 🔗 Source: https://www.phoronix.com/news/Rust-Coreutils-0.8-Released #gnu

Hashtags

Linuxgram 🐧

@linuxgram · Post #18266 · 01.04.2026 г., 06:25

📰 Claude AI finds Vim, Emacs RCE bugs that trigger on file open Vulnerabilities in the Vim and GNU Emacs text editors, discovered using simple prompts with the Claude assistant, allow remote code execution simply by opening a file. 🔗 Source: https://www.bleepingcomputer.com/news/security/claude-ai-finds-vim-emacs-rce-bugs-that-trigger-on-file-open/ #gnu

Hashtags

Linuxgram 🐧

@linuxgram · Post #18083 · 17.03.2026 г., 06:50

📰 GNU C Library Lands x86_64 FMA'ed cosh For A ~35% Improvement A bit of time has passed since having any exciting performance improvements to report on within the GNU C Library "glibc" but that changed today with another nice x86_64 optimization for modern CPUs... 🔗 Source: https://www.phoronix.com/news/Glibc-Faster-cosh-x86-64-FMA #gnu

Hashtags

Linuxgram 🐧

@linuxgram · Post #17937 · 01.03.2026 г., 17:24

📰 GNU Hurd Finally Runs on x86_64 With New 64-Bit Port GNU Hurd now supports x86_64 through GNU Guix, marking its first official move beyond 32-bit architecture after decades of development. 🔗 Source: https://linuxiac.com/gnu-hurd-finally-runs-on-x86-64-with-new-64-bit-port/ #gnu

Hashtags

Linuxgram 🐧

@linuxgram · Post #17864 · 22.02.2026 г., 18:23

📰 GNU Gawk 5.4 Released With New MinRX Regex Matcher, Faster Reading Of Files Developers behind the widely-used GNU Awk text processing utility today released Gawk 5.4... 🔗 Source: https://www.phoronix.com/news/GNU-Gawk-5.4-Released #gnu

Hashtags

Solidot 纯净版

@SolidotR · Post #4926 · 04.04.2026 г., 09:33

Gentoo GNU/Hurd 不是愚人节玩笑 #GNU 4 月 1 日愚人节,Gentoo Linux 项目宣布将把 GNU Hurd 作为其主要内核。这并非完全是愚人节玩笑,它真的发布了 Gentoo GNU/Hurd 移植版本。基于微内核架构的 GNU Hurd 至今有逾 35 历史,但 1.0 版本还未发布,最新版本是 2016 年的 v0.9。Gentoo 项目表示它的 GNU/Hurd 版本仍然处于实验阶段,建议想要尝试的用户通过 QEMU 模拟器运行,当然也可以挑战直接在硬件上运行。 https://www.gentoo.org/news/2026/04/01/gentoo-hurd.html https://www.gnu.org/software/hurd/

Hashtags

Solidot 纯净版

@SolidotR · Post #4754 · 16.03.2026 г., 11:47

FSF 希望用户自由是 AI 公司版权诉讼的一个目标 #GNU Anthropic 从 Library Genesis 等影子图书馆下载了逾 700 万本书籍,它与图书作者和解了侵权诉讼,正联系相关图书的作者提供经济补偿。被收录在 Anthropic 图书数据库中的一本书是 Sam Williams 著的《Free as in freedom: Richard Stallman's crusade for free software》,该书由 O'Reilly 和 FSF 根据 GNU Free Documentation License (GNU FDL)许可证出版,GNU FDL 是一种自由许可证,无需付费即可用于任意目的。FSF 表示,它对经济补偿兴趣不大,如果其拥有版权的图书被 AI 公司用于训练大模型,那么它更希望获得的补偿是用户自由:AI 公司与用户共享完整的训练输入,完整的模型、训练配置设置和相应的软件源代码。 https://www.fsf.org/blogs/licensing/2026-anthropic-settlement

Hashtags

ПретходнаСтраница 1 од 3Следна