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