Создание штрих-кодов в Python!
Генерация штрих-кодов легко автоматизируется с помощью библиотеки
python-barcode. Для начала установим саму библиотеку и зависимость для генерации изображений:
pip install python-barcode pillowБиблиотека Pillow используется для сохранения в формате PNG через
ImageWriter.Импортируем основной модуль и writer для работы с изображениями:
import barcode
from barcode.writer import ImageWriterСоздадим штрих-код формата EAN-13. Важно: передаётся ровно 12 цифр, а контрольная цифра рассчитывается и добавляется автоматически.
ean = barcode.get(
"ean13",
"590123412345",
writer=ImageWriter()
)
Сохраним его на диск:
filename = ean.save("product_barcode")
print(filename)В результате будет создан файл
product_barcode.png в текущей директории.Генерация нескольких штук: частый сценарий — генерация серии штрих-кодов, например для списка товаров или записей из базы данных:
codes = [
"123456789012",
"987654321098",
"111222333444"
]
for value in codes:
code_obj = barcode.get(
"ean13",
value,
writer=ImageWriter()
)
code_obj.save(f"barcode_{value}")Здесь также важно соблюдать требование формата: 12 цифр для EAN-13, иначе библиотека выбросит исключение.
Если нужно кодировать произвольные строки (номера заказов, документов, инвойсов), удобнее использовать Code128:
code128 = barcode.get(
"code128",
"ORDER-2025-001",
writer=ImageWriter()
)
code128.save("order_barcode")Этот формат не ограничен только цифрами и широко используется в логистике и документообороте.
На практике генерацию часто выносят в функцию — для переиспользования в сервисах или API:
def generate_barcode(value, filename):
code = barcode.get(
"code128",
value,
writer=ImageWriter()
)
return code.save(filename)
generate_barcode("INVOICE-4587", "invoice_4587")Такой подход удобно масштабировать и дополнять логикой (валидация, настройки writer, сохранение путей в БД и т.д.)
Python Ready | #практика