Seite 1 von 1

Fehlerhafter Dateipfad für Bild

Verfasst: Montag 3. Februar 2020, 18:38
von Spedex
Hey, ich würde gerne ein Bild aufrufen.
Dazu verwende ich folgendes Programm:

Code: Alles auswählen

...
from PIL import Image
...
mainimage = Image.open("MapGanzRoh.png")
...
Dabei entsteht jedoch folgende Fehlermeldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "c:/Users/xx/Documents/Python/gui2/gui2.py", line 7, in <module>
    mainimage = Image.open('MapGanzRoh.png')
  File "C:\Users\xx\AppData\Local\Programs\Python\Python38-32\lib\site-packages\PIL\Image.py", line 2809, in open
    fp = builtins.open(filename, "rb")
FileNotFoundError: [Errno 2] No such file or directory: 'MapGanzRoh.png'
Nun kann man es auch probieren indem man den kompletten Pfad angibt:

Code: Alles auswählen

...
from PIL import Image
...
mainimage = Image.open("C:\Users\xx\Documents\Python\gui2\MapGanzRoh.png")
...
Dabei erscheint jedoch folgende Fehlermeldung:

Code: Alles auswählen

  File "c:/Users/xx/Documents/Python/gui2/gui2.py", line 7
    mainimage = Image.open("C:\Users\xx\Documents\Python\gui2\MapGanzRoh.png")
                           ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
Woran kann das liegen?
LG Spedex

Re: Fehlerhafter Dateipfad für Bild

Verfasst: Montag 3. Februar 2020, 18:43
von __deets__
Du musst dafuer raw-Strings nehmen, weil "\u" eben eine Unicode-Sequenz einlaeutet. Also

r"C:\mein\pfad"

oder

"C:/mein/pfad"

weil Windows auch / als Pfadtrenner akzeptiert.

Re: Fehlerhafter Dateipfad für Bild

Verfasst: Montag 3. Februar 2020, 18:49
von Sirius3
Das Arbeitsverzeichnis ist eben nicht das Verzeichnis in dem die Datei gui2.py bzw das Bild liegt.
Daher mußt Du erst den Pfad der Python-Datei ermitteln und daraus den Pfad zum Bild zusammenbauen:

Code: Alles auswählen

from pathlib import Path
BASEPATH = Path(__file__).parent
...
mainimage = Image.open(BASEPATH / "MapGanzRoh.png")

Re: Fehlerhafter Dateipfad für Bild

Verfasst: Montag 3. Februar 2020, 18:54
von Spedex
Alles klar. Vielen Dank, jetzt funktioniert es.
Wenn die Software allerdings von anderen PC genutzt werden soll, stimmt der vollständige Pfad ja nicht mehr. Wie wird das denn dann gelöst?

Re: Fehlerhafter Dateipfad für Bild

Verfasst: Montag 3. Februar 2020, 19:23
von __deets__
Hat dir doch Sirius3 gezeigt. Liest du die Antworten nicht? Schien auch schon bei dem Monotonic Thema so.

Re: Fehlerhafter Dateipfad für Bild

Verfasst: Montag 3. Februar 2020, 19:35
von Spedex
Selbstverständlich lese ich mir die Antworten durch. Wusste nicht, dass das die Lösung für mein Problem ist.

Re: Fehlerhafter Dateipfad für Bild

Verfasst: Montag 3. Februar 2020, 20:04
von Spedex
Sirius3 hat geschrieben: Montag 3. Februar 2020, 18:49 Das Arbeitsverzeichnis ist eben nicht das Verzeichnis in dem die Datei gui2.py bzw das Bild liegt.
Daher mußt Du erst den Pfad der Python-Datei ermitteln und daraus den Pfad zum Bild zusammenbauen:

Code: Alles auswählen

from pathlib import Path
BASEPATH = Path(__file__).parent
...
mainimage = Image.open(BASEPATH / "MapGanzRoh.png")
Das heißt in BASEPATH wird der Path der Python-File gespeichert und ich kann dann mit / "xxx" etwas hintendranhängen, um ein Verzeichnis anzugegeben, ist das so richtig?

Re: Fehlerhafter Dateipfad für Bild

Verfasst: Montag 3. Februar 2020, 20:20
von Sirius3
Ja. Solche Fragen kannst Du einfach durch ausprobieren und Dokumentation lesen beantworten.