7 Stimmen

Fehler: Datei oder Verzeichnis nicht gefunden

Ich erhalte folgende Fehlermeldung:

Traceback (most recent call last):
  File "E:\stuff\module.py", line 91, in <module>
    f = open('E:/stuff/log.txt')
IOError: [Errno 2] No such file or directory: 'E:/stuff/log.txt'

Und das ist mein Code:

f = open('E:/stuff/log.txt')

En E:/stuff/log.txt Datei existiert. Ich kann im Windows Explorer navigieren und die Datei öffnen, warum kann ich sie nicht öffnen?

EDIT:

Ausgabe des Befehls DIR:

C:\Documents and Settings\Administrator>dir e:\stuff
 Volume in drive E has no label.
 Volume Serial Number is 5660-4957

 Directory of e:\stuff

23. 10. 2010  09:26    <DIR>          .
23. 10. 2010  09:26    <DIR>          ..
19. 10. 2010  20:07               385 index.py
23. 10. 2010  16:12             1 954 module.py
22. 10. 2010  19:16             8 335 backprop.py
19. 10. 2010  20:54             1 307 backprop-input.gif
19. 10. 2010  01:48               310 HelloWorld.kpf
23. 10. 2010  15:47                 0 log.txt.txt
               6 File(s)         12 291 bytes
               2 Dir(s)   8 795 586 560 bytes free

C:\Documents and Settings\Administrator>dir e:\
 Volume in drive E has no label.
 Volume Serial Number is 5660-4957

 Directory of e:\

16. 10. 2010  13:32    <DIR>          development-tools
23. 10. 2010  09:26    <DIR>          stuff
               0 File(s)              0 bytes
               2 Dir(s)   8 795 586 560 bytes free

Ich führe das Python-Skript von cmd wie folgt aus:

python E:\stuff\module.py

13voto

Tim Čas Punkte 9768

Erstens, von oben, Windows unterstützt / einfach gut.

Zweitens: Wenn Sie sich Ihre Datei ansehen, werden Sie feststellen, dass sie nicht log.txt heißt, sondern log.txt.txt... Sie sehen sie vielleicht als "log.txt" in Ihrem grafischen Ordnerbetrachter (im Gegensatz zum CLI-Befehl "dir"), einfach weil er die bekannten Dateierweiterungen verbirgt.

Ich empfehle Ihnen, dies zu deaktivieren - in den Ordneroptionen sollte es eine Option "Erweiterungen bekannter Dateitypen ausblenden" (oder eine ähnliche) geben.

4voto

brady Punkte 2097

Sehen Sie sich diese Zeile in der "dir"-Ausgabe an:

23. 10. 2010  15:47                 0 log.txt.txt

Die Datei, die Sie suchen, heißt "log.txt.txt", nicht "log.txt". Ich erlebe das, wenn Leute den Windows-Dateimanager so einstellen, dass bekannte Dateierweiterungen nicht angezeigt werden, und dann versuchen, eine Erweiterung hinzuzufügen oder zu ändern. Ich empfehle anderen, dieses Verhalten zu deaktivieren. Sie können dies unter Ansicht->Ordneroptionen tun, glaube ich.

1voto

tutuDajuju Punkte 9537

Wie sieht es mit den Leseberechtigungen aus? Vielleicht sind Sie nicht zum Lesen berechtigt (Standardmodus beim Öffnen).

1voto

Rawheiser Punkte 1150

Da es sich um Windows handelt und der Backslash ein Escape-Zeichen ist, müssen Sie den Backslash verdoppeln, um ihn zu umgehen. Versuchen Sie

e:\\stuff\\log.txt

1voto

mouad Punkte 63071

Es ist schon lange her, dass ich Windows nicht mehr benutzt habe, aber wenn ich mich richtig erinnere, verwendet Windows einen Schrägstrich im Systempfad, also sollten Sie das auch tun:

import os

file_name = os.path.join("e:\\stuff", "log.txt")

f = open(file_name)

und nicht:

f = open('E:/stuff/log.txt')

in Windows gibt es kein / in Pfaden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X