2010-07-09 10 views
20

Ich habe dieses Programm, das an einem Punkt auf os.getcwd() zugreift, aber einige Male, abhängig davon, wo das Programm vor dem Erreichen dieser Zeile gegangen ist, stürzt es mit der Meldung "OSError: [Errno 2] Keine solche Datei oder ab Verzeichnis". Ich kann nicht herausfinden, was ich falsch machen kann, dann os.getcwd() aufrufen. Es gibt keine Argumente, und es sollte immer ein aktuelles Arbeitsverzeichnis geben, oder?Python: Warum stürzt os.getcwd() manchmal mit OSError ab?

+1

Ihr Programm muss nicht abstürzen. Ausnahmen sind ein normaler und gesunder Teil eines Python-Programms und ebenso ihre Handhabung. Wickeln Sie Ihren Aufruf an os.getcwd() in einem Versuch: -except OSError:, geben Sie eine geeignete Nachricht aus, wenn die Ausnahme auftritt, und fahren Sie mit Ihrem Programm fort. – PaulMcG

+0

http://stackoverflow.com/questions/27058053/selenium-python-webdriver-path-error-system-cant-find-the-path-specified – user4274867

Antwort

28

Das aktuelle Verzeichnis wurde möglicherweise von einem anderen Prozess gelöscht.

+1

Danke, das war es. Irgendwo habe ich einige unnötige Änderungen von Workdir gemacht, später irgendwo gelöscht, und dann vergessen, wieder zu wechseln. – Eskil

+0

Ich habe einen Fehler fotenotfound bei einem os.getcwd Aufruf in Python. Ich versuche, meine Anwendung zu debuggen. Kann ich trotzdem abrufen, welches Verzeichnis gelöscht wurde? –

7

Sie können diesen Fehler erhalten, wenn das aktuelle Arbeitsverzeichnis gelöscht wurde. Programme, die in einem bestimmten Verzeichnis arbeiten, bemerken nicht automatisch, wenn das Verzeichnis gelöscht wird. Soweit es das Programm betrifft, ist das CWD nur eine Zeichenfolge, zumindest bis Sie etwas wie os.getcwd() tun, das tatsächlich auf diesen Pfad im Dateisystem zugreift. Es ist also möglich, ein aktuelles Verzeichnis zu haben, das nicht existiert.

Ohne mehr über Ihr Programm und dessen Ausführungsumgebung zu wissen, kann ich Ihnen nicht sagen, ob das tatsächlich passiert.

3

Sie würden diesen Fehler erhalten, wenn Ihr aktuelles Verzeichnis nicht mehr existiert (es wird gelöscht).

+2

move macht diesen Fehler nicht, nur löschen –

Verwandte Themen