From f9d2cb44694cd46bcc2dc5cd736aa091188e65c6 Mon Sep 17 00:00:00 2001 From: Elias Probst Date: Thu, 16 Nov 2023 00:30:06 +0100 Subject: [PATCH] feat: improve handling of output directory - don't fail, when the directory doesn't exist but create it instead - handle failures to create the output directory properly - use f-string formatting to simplify building the output filename - use OS-independent `os.path.join` to build the output path --- main.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index 7edf13c..a282b5a 100644 --- a/main.py +++ b/main.py @@ -1,3 +1,6 @@ +import os +import sys + import AveryLabels from reportlab.lib.units import mm, cm from reportlab_qrcode import QRCodeImage @@ -96,10 +99,15 @@ def render(c: canvas.Canvas, width: float, height: float): c.restoreState() -fileName = "out/labels-" + str(labelForm) + "-" + str(mode) + ".pdf" +outputDirectory = 'out' +fileName = os.path.join(outputDirectory, f"labels-{labelForm}-{mode}.pdf") label = AveryLabels.AveryLabel(labelForm) label.debug = debug +try: + os.makedirs(outputDirectory, exist_ok=True) +except OSError as oe: + sys.exit(f"Failed to create directory '{outputDirectory}': {oe}") label.open(fileName) label.render(render, count=labelsToPrint, offset=offsetLabels) label.close()