@repo_science · Post #4190 · 20.08.2024 г., 11:13
#linux#softSkills#commandLine 📱 Linux: Master the Linux Command Line ----- Main channel: @repo_science Coupons: @freecoupons_reposcience -----
Hashtags
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
Пребарај: #commandline
@repo_science · Post #4190 · 20.08.2024 г., 11:13
#linux#softSkills#commandLine 📱 Linux: Master the Linux Command Line ----- Main channel: @repo_science Coupons: @freecoupons_reposcience -----
Hashtags
@repo_science · Post #3361 · 27.06.2023 г., 21:42
#softSkills#commandLine#cheatSheet Command Line Cheat Sheet ----- Main channel: @repo_science Coupons: @freecoupons_reposcience -----
@AppPie · Post #2386 · 07.04.2025 г., 04:04
#Apps OCRmyPDF: 为扫描 PDF 添加 OCR 文本层 🔗GitHub OCRmyPDF 是一个开源的命令行工具和库,它可以为扫描的 PDF 文件添加 OCR 文本层,使文件内容可被搜索和复制粘贴。该工具利用 Tesseract OCR 引擎识别 PDF 中图像里的文本,并将其准确地放置在原始图像下方,使得用户可以轻松地搜索和选择文档中的内容。 OCRmyPDF 的工作原理是分析 PDF 的每一页,确定所需的色彩空间和分辨率,然后使用 Ghostscript 将每页栅格化,接着通过 Tesseract 进行 OCR 处理,并将生成的 OCR 层集成回原始 PDF。与直接使用 ImageMagick 或 Ghostscript 处理图像然后通过 Tesseract OCR 不同,OCRmyPDF 能够生成变化最小的 PDF 输出,同时保留原始图像的精确分辨率。 主要特点 - 多语言支持:支持 Tesseract 的所有语言包,包括英语、法语、中文等 - 图像处理:自动旋转页面、去偏斜、清理背景和图像优化 - PDF/A 生成:默认生成符合 PDF/A 标准的存档文件,便于长期保存 - 批处理能力:支持多核处理,提高 OCR 速度 - 多平台支持:适用于 Linux、macOS、Windows 和 FreeBSD - Docker 支持:提供 Docker 镜像,方便快速部署 - JBIG2 优化:支持 JBIG2 编码,大幅减小黑白图像的文件大小 - 页面选择:允许只对 PDF 中的特定页面进行 OCR 处理 - 扩展性:支持插件系统,可自定义处理流程 部署选项 - 通过 pip 安装:`pip install ocrmypdf` - Docker 容器 - 系统包管理器:支持多种 Linux 发行版和 macOS 的 Homebrew - 从源代码构建 开源许可证 MPL-2.0。 #GitHub#OpenSource#PDF#OCR#CommandLine 📮 频道 @AppPie
@githubtrending · Post #15135 · 10.09.2025 г., 13:00
#javascript#ansi#ansi_escape_codes#chalk#cli#color#commandline#console#javascript#strip_ansi#terminal#terminal_emulators Chalk is a popular Node.js tool that lets you easily add colors and styles to text in the terminal, making your console output clearer and more attractive. It supports many colors, including 256 and truecolor (millions of colors), and allows you to combine and nest styles like bold, underline, and background colors. Chalk auto-detects if your terminal supports colors and works without adding dependencies or changing built-in string behavior. You can create custom themes and use template literals for dynamic, colorful logs. This helps you highlight important information in your terminal output, improving readability and debugging. Chalk is reliable, actively maintained, and widely used in many projects. https://github.com/chalk/chalk