[PYTHON:TODAY]
63K subscribers
2.32K photos
1.05K videos
293 files
1.46K links
Python скрипты, нейросети, боты, автоматизация. Всё бесплатно!

Приват: https://boosty.to/pythontoday
YouTube: https://clck.ru/3LfJhM
Канал админа: @akagodlike
Чат: @python2day_chat

Сотрудничество: @web_runner

Канал в РКН: https://clck.ru/3GBFVm
Download Telegram
💀 QR_GEN — готовый скрипт генерации QR-кодов из чего угодно: ссылки, текста, контакта, Wi-Fi-данных.

🟢Скрипт на вход получает строку — и превращает её в PNG с QR.
🟢Работает с CLI, понимает stdin, настраивается по цвету и размеру.
🟢Хочешь чёрный QR на белом фоне? Или наоборот — белый на чёрном? Сделай как угодно.

📦 Установка зависимостей:
pip install qrcode


😰 Код:
#!/usr/bin/env python3

import argparse
import sys
from pathlib import Path
from typing import Optional

import qrcode
from qrcode.constants import ERROR_CORRECT_M

def make_qr_png(data: str, out: Path | str = "qrcode.png", *,
box_size: int = 10, border: int = 4,
error_correction: Optional[int] = None,
fill_color: str = "black", back_color: str = "white") -> Path:
"""
Простая генерация QR в PNG.

:param data: строка для кодирования
:param out: путь к файлу (png)
:param box_size: размер модуля в пикселях
:param border: ширина 'тихой зоны' в модулях
:param error_correction: уровень коррекции (по умолчанию M)
:param fill_color: цвет «чернил»
:param back_color: цвет фона
:return: путь к сохранённому файлу
"""
if not data:
raise ValueError("Пустая строка для кодирования")

ec = error_correction or ERROR_CORRECT_M

qr = qrcode.QRCode(
version=None,
error_correction=ec,
box_size=box_size,
border=border,
)
qr.add_data(data)
qr.make(fit=True)
img = qr.make_image(fill_color=fill_color, back_color=back_color)

out_path = Path(out)
out_path.parent.mkdir(parents=True, exist_ok=True)
img.save(out_path)
return out_path


def main(argv: list[str]) -> int:
p = argparse.ArgumentParser(description="Простой генератор QR -> PNG")
p.add_argument("data", nargs="?", help="Текст или URL (если не указан — читаем из stdin)")
p.add_argument("-o", "--out", default="qrcode.png", help="Файл вывода (png)")
p.add_argument("--box", type=int, default=10, help="Размер модуля (px)")
p.add_argument("--border", type=int, default=4, help="Тихая зона (модули)")
p.add_argument("--fg", default="black", help="Цвет кода")
p.add_argument("--bg", default="white", help="Цвет фона")
args = p.parse_args(argv)

data = args.data
if data is None:
if sys.stdin.isatty():
p.print_help()
return 1
data = sys.stdin.read().strip()

try:
out_path = make_qr_png(
data,
args.out,
box_size=args.box,
border=args.border,
fill_color=args.fg,
back_color=args.bg,
)
print(f"QR saved -> {out_path}")
return 0
except Exception as e:
print(f"Error: {e}", file=sys.stderr)
return 2


if __name__ == "__main__":
raise SystemExit(main(sys.argv[1:]))


▶️ Запуск:
python qr_gen.py "https://pypi.org" -o exmp.png


Где использовать:
* автоматизация рассылок и маркетинг;
* визитки, упаковка, QR на продукте;
* генерация кодов прямо в скриптах или веб-приложениях.

#python #code #soft
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4313🔥8🫡3