2017-11-06 5 views
-2

ich folgende Python-Skript haben:Warum zeigt mein Bild nicht?

import os 
from PIL import Image 
import numpy 

path = '/my_path' 
for root, dirs, files in os.walk(path): 
    for file in files: 
     if file.startswith('first'): 
      img1 = numpy.asarray(Image.open(root + '/' + file)) 
     if file.startswith('second'): 
      img2 = numpy.asarray(Image.open(root + '/' + file)) 

    img1.show() 
    img2.show() 

Wenn ich den Code ausführen, bekomme ich die folgende:

Traceback (most recent call last): 
    File "test.py", line 14, in <module> 
    img1.show() 
NameError: name 'img1' is not defined 

Wie kann ich die Bilder angezeigt werden, vorausgesetzt, dass ich möchte img1 lesen und img2 zuerst?

Danke.

+1

Wenn nichts mit 'first' beginnt, dann wird img1 nicht definiert, und dasselbe gilt für img2. Solltest du nicht img1 und img2 direkt unterstellen wo es definiert ist? – abccd

+0

Auch img1 und img2 werden gleich den letzten gefundenen Bildern sein, was ich für unerwünschtes Verhalten halte – arielnmz

+0

Und 'numpy'' array' hat keine 'show' Methode, Sie sollten' img1' und 'img2' zuweisen das Bild, das von 'Image' geöffnet wurde, nicht das von 'asarray' geparste Array. – abccd

Antwort

1

Ich denke, Sie haben ein Problem Bereich. Wenn Sie img1 und img2 gleich nach der ersten for-Schleife initialisieren, sollte das der Trick sein.