From 16a4232db94844103d9b4a1f448652f7380d6306 Mon Sep 17 00:00:00 2001 From: Daniel Messer Date: Thu, 10 Jul 2025 08:37:19 -0400 Subject: [PATCH] Added CSV output. --- Changelog.md | 11 +++++++++++ chilicheck.py | 24 +++++++++++++++--------- isbn-image-checks.csv | 5 +++++ isbn-image-checks.txt | 4 ---- 4 files changed, 31 insertions(+), 13 deletions(-) create mode 100644 Changelog.md create mode 100644 isbn-image-checks.csv delete mode 100644 isbn-image-checks.txt diff --git a/Changelog.md b/Changelog.md new file mode 100644 index 0000000..76a0912 --- /dev/null +++ b/Changelog.md @@ -0,0 +1,11 @@ +# Changelog + +## Version 25.07.10 + +* Added CSV export +* Removed spaces in the output of image dimensions for greater CSV compatibility + +## Version 25.07.08 + +Initial release. Minimum viable product + diff --git a/chilicheck.py b/chilicheck.py index 612dd4d..0bbbf92 100644 --- a/chilicheck.py +++ b/chilicheck.py @@ -1,20 +1,24 @@ import requests from PIL import Image from io import BytesIO +import csv # The base URL for ChiliFresh - the UPC, ISSN, and sizes aren't too relevant here BASE_URL = "https://content.chilifresh.com/?isbn={isbn}&upc=&issn=&size=S" # File management isbn_file = "isbns.txt" # Provide a single column list of ISBNs in a plain text file -output_file = "isbn-image-checks.txt" # Your results will drop here +output_csv = "isbn-image-checks.csv" # Your results will drop here -# Read the ISBNs from the input file +# Read the ISBNs from input file with open(isbn_file, "r") as f: isbns = [line.strip() for line in f if line.strip()] # Open and prepare the output file -with open(output_file, "w") as out: +with open(output_csv, "w", newline="") as csvfile: + writer = csv.writer(csvfile) + writer.writerow(["ISBN", "ImageSize"]) # Your CSV headers + for isbn in isbns: url = BASE_URL.format(isbn=isbn) try: @@ -23,14 +27,16 @@ with open(output_file, "w") as out: image = Image.open(BytesIO(response.content)) width, height = image.size + image_size = f"{width}x{height}" - out.write(f"{isbn}: {width} x {height} pixels\n") - print(f"Processed ISBN {isbn}: {width} x {height}") + writer.writerow([isbn, image_size]) + print(f"{isbn}: {image_size}") + # Error handling except requests.exceptions.RequestException as e: - out.write(f"{isbn}: Image retrieval error - {e}\n") - print(f"Error retrieving image for ISBN {isbn}: {e}") + writer.writerow([isbn, f"Image retrieval error - {e}"]) + print(f"Error retrieving image for {isbn}: {e}") except Exception as e: - out.write(f"{isbn}: Image processing error - {e}\n") - print(f"Error processing image for ISBN {isbn}: {e}") + writer.writerow([isbn, f"Image processing error - {e}"]) + print(f"Error processing image for {isbn}: {e}") diff --git a/isbn-image-checks.csv b/isbn-image-checks.csv new file mode 100644 index 0000000..1c29251 --- /dev/null +++ b/isbn-image-checks.csv @@ -0,0 +1,5 @@ +ISBN,ImageSize +9780593441299,66x100 +9780061120084,67x100 +9780358362159,1x1 +9781982137274,66x100 diff --git a/isbn-image-checks.txt b/isbn-image-checks.txt deleted file mode 100644 index c4da38f..0000000 --- a/isbn-image-checks.txt +++ /dev/null @@ -1,4 +0,0 @@ -9780593441299: 66 x 100 pixels -9780061120084: 67 x 100 pixels -9780358362159: 1 x 1 pixels -9781982137274: 66 x 100 pixels