TGViewer
[PYTHON:TODAY] [PYTHON:TODAY] @python2day · 63.7K subscribers
Post #7273 13.5K
💀 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
  • 👍 52
  • ❤ 20
  • 🔥 10
  • 🫡 3
More from @python2day
  1. Oct 7, 2026😂 В чем он не прав? Хорошего дня!☕️
  2. Oct 5, 2026👨‍💻 50 полезных команд для ChatGPT, после которых огромные PDF и статьи можно больше не…
  3. Oct 5, 2026😳 С добрым утром! Наконец-то собрался записать лайф-видео с ответами на вопросы. Накопило…
  4. Oct 3, 2026💀 В Шанхае работает огромный порт, где почти нет кожаных мешков Контейнеры на терминале п…
  5. Oct 3, 2026Claude снова банит пользователей из РФ На этой неделе многим пришли письма от Anthropic: а…
  6. Oct 3, 2026🔥 Нейронка, которая превращает обычные фотографии в 3D-сцену за считанные секунды VGGT (V…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →