TGViewer
Learn Python Coding Learn Python Coding @pythonre · 40.8K subscribers
Post #9098 1.88K
Creating Barcodes in Python!

Barcode generation can be easily automated using the python-barcode library.

First, install the library itself and the dependency for image generation:
pip install python-barcode pillow


The Pillow library is used to save in PNG format via ImageWriter.

Import the main module and writer for working with images:
import barcode
from barcode.writer import ImageWriter


Let's create an EAN-13 barcode. Important: exactly 12 digits are passed, and the check digit is automatically calculated and added.
ean = barcode.get(
    "ean13",
    "590123412345",
    writer=ImageWriter()
)


Save it to disk:
filename = ean.save("product_barcode")
print(filename)


As a result, the product_barcode.png file will be created in the current directory.

Generating several barcodes: a common scenario is generating a series of barcodes, for example for a list of products or database records:
codes = [
    "123456789012",
    "987654321098",
    "111222333444"
]

for value in codes:
    code_obj = barcode.get(
        "ean13",
        value,
        writer=ImageWriter()
    )
    code_obj.save(f"barcode_{value}")


Here, it's also important to comply with the format requirement: 12 digits for EAN-13, otherwise the library will throw an exception.

If you need to encode arbitrary strings (order numbers, documents), it's more convenient to use Code128:
code128 = barcode.get(
    "code128",
    "ORDER-2025-001",
    writer=ImageWriter()
)

code128.save("order_barcode")


This format is not limited to numbers and is widely used in logistics and document management.

In practice, generation is often outsourced to a function - for reuse in services or APIs:
def generate_barcode(value, filename):
    code = barcode.get(
        "code128",
        value,
        writer=ImageWriter()
    )
    return code.save(filename)

generate_barcode("INVOICE-4587", "invoice_4587")


🔥 This approach is convenient to scale and supplement with logic (validation, writer settings, saving paths in the database, etc.).

👉 @DataScience4
  • ❤ 2
More from @pythonre
  1. Oct 13, 2026https://substack.com/@husseinsheikho?utm_source=share&utm_medium=android&r=3hwnr8 Follow m…
  2. Oct 10, 2026📚 Download 10 Python books for FREE: 1. Think Python — O’Reilly https://t.co/X7y3pX68IW 2…
  3. Oct 7, 2026Python Lists: A Quick Reference 🐍 * Definition: Lists are ordered, mutable collections th…
  4. Oct 7, 2026📱 270 tools for Python developers The repository contains: 🫡 Linters and formatters; 🫡…
  5. Oct 7, 2026Hands On Python Data Science - Data Science Bootcamp Master Python for Data Science with R…
  6. Oct 6, 2026Post #9851
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 →