2017-05-31 3 views
1

zurück Ich schreibe den Code, um 6 Bilder im Ordner 'test_images' zu verarbeiten. Ihr Name wurde in der TestImagesArray gespeichert.Python gibt Fehler beim Lesen der zweiten Datei im Ordner

So print(TestImagesArray) gibt mir:

['solidYellowCurve.jpg', 'whiteCarLaneSwitch.jpg', 'solidWhiteCurve.jpg', 'solidYellowLeft.jpg', 'solidWhiteRight.jpg', 'solidYellowCurve2.jpg'] 

In der for-Schleife, versuche ich, von der ersten bis zur sechsten

Insgesamt 6 Bilder

for i in range(0,2): 
    # Add the folder's name before image name 
    location = 'test_images/'+TestImagesArray[i]; 
    image = mpimg.imread(location) 
    gray = grayscale(image) 
    # Assumption: one kernal size for all images 
    ... 
    print(i) 

Wenn i = 0, zu lesen Es klappt. Aber wenn i = 1 ist, gibt es einen Fehler zurück.

Traceback (most recent call last): File "p1.py", line 121, in image = mpimg.imread(location) File "/home/cocadas/miniconda3/envs/carnd-term1/lib/python3.5/site-packages/matplotlib/image.py", line 1227, in imread im = pilread(fname) File "/home/cocadas/miniconda3/envs/carnd-term1/lib/python3.5/site-packages/matplotlib/image.py", line 1205, in pilread with Image.open(fname) as image: File "/home/cocadas/miniconda3/envs/carnd-term1/lib/python3.5/site-packages/PIL/Image.py", line 2410, in open fp = builtins.open(filename, "rb") FileNotFoundError: [Errno 2] No such file or directory: 'test_images/whiteCarLaneSwitch.jpg'

In demselben Verzeichnis, in dem 'python p1.py' ausgeführt wird. Überprüfen Sie den Speicherort der Datei von

[email protected]:~/Workspace/carnd/CarND-LaneDection-HT$ ls -al test_images/whiteCarLaneSwitch.jpg 
-rw-rw-r-- 1 cocadas cocadas 60676 May 30 13:05 test_images/whiteCarLaneSwitch.jpg 

So sagt mir, dass die Datei vorhanden ist. Es ergibt keinen Sinn für mich. Vermisse ich etwas?

+2

Scheint ziemlich klar: Die Datei ist nicht da. Bist du sicher, dass du die Namen richtig verstanden hast? –

+1

Ich glaube, dass Python auch nach 'test_images /' suchen kann, relativ zu dem Ort, an dem Sie das Skript ausgeführt haben, und nicht dort, wo das Skript tatsächlich ist. Wenn Sie wissen, dass die Dateien vorhanden sind, überprüfen Sie, ob dies auch geschieht. –

+0

In demselben Verzeichnis, in dem 'python p1.py' ausgeführt wird. Überprüfen Sie den Speicherort der Datei von Cocadas @ cocadas-ThinkPad-W540: ~/Arbeitsbereich/carnd/CarND-LaneDection-HT $ ls -al test_images/whiteCarLaneSwitch.jpg -rw-rw-r-- 1 Cocadas Cocadas 60676 30. Mai 13:05 test_images/whiteCarLaneSwitch.jpg – Hong

Antwort

1

Schauen Sie sich das Ende des Stack-Trace an: FileNotFoundError: [Errno 2] No such file or directory: 'test_images/whiteCarLaneSwitch.jpg'. Das sagt Python, dass es die Datei nicht finden kann. Stellen Sie sicher, dass sich die Datei tatsächlich in Ihrem Dateisystem befindet, und überprüfen Sie, ob Sie den Dateinamen richtig geschrieben haben (sowohl in Ihrem Code als auch in Ihrem Dateisystem).

Sie könnten auch (absichtlich oder versehentlich) Arbeitsverzeichnisse wechseln, wodurch der relative Pfad fehlschlägt.

Die einfachste Lösung wäre wahrscheinlich, den vollständigen Pfad zu verwenden. In Ihrem Fall (Beurteilung durch Ihre ls-Ausgabe):

import os 
home = os.path.expanduser("~") 
workDir = os.path.join(home,'Workspace/carnd/CarND-LaneDection-HT/') 
for i in range(0,6): 
    location = = workDir+'test_images/'+TestImagesArray[i]; 
    image = mpimg.imread(imageLocation) 
+0

In demselben Verzeichnis, in dem 'python p1.py' ausgeführt wird. Überprüfen Sie den Speicherort der Datei von Cocadas @ cocadas-ThinkPad-W540: ~/Arbeitsbereich/carnd/CarND-LaneDection-HT $ ls -al test_images/whiteCarLaneSwitch.jpg -rw-rw-r-- 1 Cocadas Cocadas 60676 30. Mai 13:05 test_images/whiteCarLaneSwitch.jpg – Hong

+1

Wechseln Sie Arbeitsverzeichnisse während der Berechnung? Ein vollständiger Pfad könnte sicherer sein. – mwm314

+0

Ich habe bestätigt, dass imwrite() das Arbeitsverzeichnis ändert. Vielen Dank! Wie benutzt man absolutes Verzeichnis in imread(), weißt du vielleicht? – Hong

Verwandte Themen