Hallo,
ich spiele gerade ein wenig mit der Python-Konsole (Python 3.5.2) herum. Dabei bin ich auf ein Verhalten gestoßen, dass ich mir nicht so richtig erklären kann. Vielleicht kann mir jemand von euch auf die Sprünge helfen.
Folgender Code läuft wie erwartet:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | >>> import os >>> for file in os.listdir('.'): ... if file.endswith(".jpg") or file.endswith(".JPG"): ... print "Datei: %s" % (file) ... Datei: IMG_20171024_171309159.jpg Datei: IMG_0002.JPG Datei: IMG_0004.JPG Datei: IMG_0011.JPG Datei: IMG_0012.JPG Datei: IMG_0013.JPG Datei: IMG_0001.JPG Datei: IMG_0006.JPG Datei: IMG_0014.JPG Datei: IMG_0015.JPG Datei: IMG_0003.JPG Datei: IMG_0008.JPG Datei: IMG_0016.JPG Datei: IMG_0007.JPG Datei: IMG_0005.JPG |
Nun möchte ich die Datei, welche in einer Iteration file
zugewiesen wurde, öffnen, damit arbeiten und anschließend eine Ausgabe machen. Jedoch ist bereits nach dem Öffnen die Variable file
nicht mehr verfügbar:
1 2 3 4 5 6 7 8 | >>> for file in os.listdir('.'): ... if file.endswith(".jpg") or file.endswith(".JPG"): ... f = open('file', 'rb') ... print "Datei: %s" % (file) ... Traceback (most recent call last): File "<stdin>", line 3, in <module> IOError: [Errno 2] No such file or directory: 'file' |
Ich verstehe nicht, warum ich den Dateinamen nicht mehr ausgeben kann, nachdem ich einen File Descriptor geöffnet habe. Könnt ihr mir das erklären?
MfG
Tronde