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

Резултати

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

Пребарај: #coding

当前筛选 #coding清除筛选
The Devs

@thedevs · Post #2026 · 06.12.2022 г., 08:42

Advent of Code 2022, small programming puzzles for a variety of skill sets that can be solved in any programming language. #coding @thedevs https://thedevs.link/HxnXh2

Hashtags

404 KIDS SEE GHOSTS (生产力之王版

@Isaiahsystem · Post #1408 · 17.01.2026 г., 18:02

Claude Code/ Codex/ Antigravity 终极启动器 (iTerm2 版) 丝如滑。最近优化了 Keyboard Maestro 快速在 iTerm 中启动 Claude Code/ Codex 宏动作。(已放评论) 结合我的快捷键启动建议,双击 Command 键读取选中的文件或文件夹,通过 iTerm2 在 Claude Code 中打开该目录位置,如果没有选中内容则跳转到预设目录。这里好用的是如果识别到 iTerm2 窗口已经打开,则开启新的 Tab 窗口分栏进入 Claude Code 打开,默认 Cmd+T 直接打开默认窗口;Codex 双击 Option 键同理。 还有个双击 Ctrl 可以 Antigravity 中同样快捷获取路径打开 iTerm Claude Code cd 到对应目录。如果 Antigravity 未打开,双击 Ctrl 则先打开该该窗口。 相关链接: 1 Claude Code 终极启动器 2 目前我的顶级生产力启动器 3 iTerm2 #coding

Hashtags

Am Neumarkt 😱

@amneumarkt · Post #472 · 28.04.2023 г., 06:26

#coding I had some discussions with serval people about writing good code during machine learning experimentation. Whenever it comes to the part of writing formal code, opinions diverge. So, should we write good code that is easy to read with typing and tests, even in experiments? The spirit of experimentation is fast and reliable. So naturally, the question comes down to what kind of coding style allows us to develop and run experiments, fast. My experience with running experiments is that we will never run the code just once. Instead, we always come back to it and run it with different configurations or parameters. In this circumstance, how good shall my code be? For typing and tests, I type most of my args but only write tests needed to develop and debug a function or class. - Typing is important because people spend time figuring out what to put in there as an argument for a function. With typing, it is much faster. - Here is an example for tests: If I need to know the shape of the tensor deep in a method of a class, I would spend some seconds writing a simple test that allows me to put breakpoints in the method to investigate inside. But, the above is a bit trivial. How about the design of the functions and classes? I suggest taking your time writing those that are repeated in every experiment. We will hit some ceiling in development speed real quick, if we always use the first and most naive design for these. In practice, I would say, design it twice and write it once. One such example is data preprocessing. When dealing with the same data and problems, data transformations are usually quite similar in each experiment but a bit different in details. Finding the patterns and writing some slightly generic functions would be helpful. There is always the risk of over-engineering. I prefer to improve things little by little. I might generalize a function a little bit in one experiment. And also, don't hesitate to throw away your code to rewrite. Rewriting will take little time, and it usually brings in improvements. That's my five cents on code quality for developing and running machine learning experiments.

Hashtags

🍘没有电鸡的广州大道南

@siubeng_store · Post #352 · 27.01.2023 г., 14:53

#Coding 今天闲下来重构一下以前坏掉的 Bilibili 网页播放器增强插件,发现我在其他项目中通过 Vite 构建 userscript (如 Tampermonkey) 插件脚本的依赖项目引流到另一个项目:vite-plugin-monkey,试用了一下确实是更加好用,也提供了不同框架的脚手架,给零碎的小需求节省了不少时间(不要问我小需求为什么不直接写单文件 vanilla js 呢🤣)

Hashtags

笔记剪藏 | René's Notes

@renenotes · Post #95 · 28.05.2022 г., 11:32

你要学会把代码和你自己分离,不要成为代码的拥有者。你要优化代码,便于其他人找到方法来修复错误和添加功能,把代码的控制权分散。因为你需要解放自己,继续去做下一个项目,否则你将永远无法脱身。 -- 《我编程20年的指导原则》 #Coding

Hashtags

椒盐豆豉剪报

@mtfront · Post #3300 · 17.06.2024 г., 21:55

给 Hugo 博客的代码区块更换主题 Hugo 默认的深色代码块跟我的浅色博客主题不太搭,于是研究了一下给 syntax highlighter 换主题。拒绝所有事情无脑上 dark mode 保护视力从我做起! 论我为了拖延刷题都能干出什么无聊事儿,本来前两天随手改一下的事儿,现在变出了一整篇博客,都快要丧失非建站非折腾博主的荣誉称号了…… #blog#coding

Hashtags

123•••10•••20•••2930
ПретходнаСтраница 1 од 30Следна