Seite 1 von 1

In Anaconda / Spyder geschriebenes Skript lässt sich nicht ausführen (Bildbearbeitung mit Pillow)

Verfasst: Dienstag 16. Januar 2018, 18:19
von Lukpau
Hallo Leute,

ich taste mich gerade erst an Python ran und habe ein Problem. Hoffentlich könnt ihr mir weiterhelfen.

Folgenden Code habe ich in der Programmierumgebung von Anaconda bzw. Spyder geschrieben. Hier lässt er sich nicht ausführen und zeigt gleich in Zeile 10 den Fehler "Invalid character in identifier". Die Datei: "logo_leuphana.png" liegt im selben Verzeichnis wie das Skript und heißt auch genau so. Was habe ich falsch gemacht?

Wenn ich jedoch die einzelnen Befehle in der Shell von Python ausführe, funktioniert der Code. Woran liegt das?

Hier der Code

Code: Alles auswählen

#! python3
# resizeAndAddLogo.py - Ändert die Größe aller Bilder im Arbeitsverzeichnis,
# sodass sie in ein Quadrat von 300 x 300 Pixel passen, und fügt in der
# unteren rechten Ecke catlogo.png hinzu

import os
from PIL import Image

SQUARE_FIT_SIZE = 300
LOGO_FILENAME = ‘logo_leuphana.png’

logoIm = Image.open(LOGO_FILENAME) 
logoWidth, logoHeight = logoIm.size

os.makedirs(‘withLogo’, exist_ok=True)
# Durchläuft alle Bilder im Arbeitsverzeichnis
for filename in os.listdir(‘.’):
   if not (filename.endswith(‘.png’) or filename.endswith(‘.jpg’)) \
      or filename == LOGO_FILENAME:
         continue # Überspringt Nicht-Bilddateien und die Logodatei selbst

   im = Image.open(filename)
   width, height = im.size
   
# Prüft, ob die Bildgröße geändert werden muss
if width > SQUARE_FIT_SIZE or height > SQUARE_FIT_SIZE:
   # Berechnet die neue Breite und Höhe
   if width > height:
      height = int((SQUARE_FIT_SIZE / width) * height)
      width = SQUARE_FIT_SIZE
   else:
      width = int((SQUARE_FIT_SIZE / height) * width)
      height = SQUARE_FIT_SIZE

   # Ändert die Bildgröße
   print(‘Resizing %s…’ % (filename))
      im = im.resize((width, height))

# Prüft, ob die Bildgröße geändert werden muss

   # Fügt das Logo hinzu
   print(‘Adding logo to %s…’ % (filename))
   im.paste(logoIm, (width - logoWidth, height - logoHeight), logoIm)

   # Speichert die Änderungen
   im.save(os.path.join(‘withLogo’, filename))

# TODO: Alle Dateien im Arbeitsverzeichnis durchlaufen

# TODO: Prüfen, ob die Bildgröße geändert werden muss

# TODO: Neue Breite und Höhe berechnen

# TODO: Bildgröße ändern

# TODO: Logo hinzufügen

# TODO: Änderungen speichern
Und noch ein Screenshot von der Programmierumgebung
Bild

Was das Programm machen soll ist glaube ich selbsterklärend: Ordner nach Bildern durchsuchen -> Größe auf 300 x 300 Pixel ändern -> Logo hinzufügen -> in neuem Ordner speichern

Vielen Dank für eure Hilfe im Voraus.

Re: In Anaconda / Spyder geschriebenes Skript lässt sich nicht ausführen (Bildbearbeitung mit Pillow)

Verfasst: Dienstag 16. Januar 2018, 18:38
von __deets__
Du meinst, du hast den Code falsch aus dem Internet abgeschrieben. Hier steht "dein" Code:

https://github.com/jivoi/junk/blob/mast ... AddLogo.py

Und da sieht man auch, das du die falschen Anfuehrungszeichen benutzt. Einfache ' oder " funktionieren, du benutzt was komisches anderes.

Re: In Anaconda / Spyder geschriebenes Skript lässt sich nicht ausführen (Bildbearbeitung mit Pillow)

Verfasst: Dienstag 16. Januar 2018, 19:05
von eckhard
__deets__ und Lukpau, das komisch Andere sind die beiden Unicode Zeichen "left single quotation mark" (U+2018, Utf8 0Xe28098)
und "right single quotation mark" (U+2019, Utf8 0Xe28099). Richtig wäre das Unicode Zeichen U+0027 (was auch ein ASCII Zeichen ist und
deshalb in UTF8 als 0X27 codiert wird_.

Eckhard

Re: In Anaconda / Spyder geschriebenes Skript lässt sich nicht ausführen (Bildbearbeitung mit Pillow)

Verfasst: Dienstag 16. Januar 2018, 19:08
von Sirius3
@Lukpau: daneben sind auch die Einrückungen kaputt.

Re: In Anaconda / Spyder geschriebenes Skript lässt sich nicht ausführen (Bildbearbeitung mit Pillow)

Verfasst: Mittwoch 17. Januar 2018, 18:46
von Lukpau
Vielen Dank Leute. Ihr wart eine große Hilfe!

@eckhard was genau meinst du damit? Wo kann ich die Unicode-Zeichen einsehen? Und was muss ich ändern? Danke!

Re: In Anaconda / Spyder geschriebenes Skript lässt sich nicht ausführen (Bildbearbeitung mit Pillow)

Verfasst: Mittwoch 17. Januar 2018, 18:57
von Sirius3
@Lukpau: kopier doch einfach aus __deets__ Link, dann sind auch all die anderen Fehler ausgeräumt.