2010-07-09 13 views
20

Ho questo programma che ad un certo punto accede a os.getcwd(), ma alcune volte, a seconda di dove il programma è andato prima di arrivare a quella linea, si blocca con il messaggio "OSError: [Errno 2] No such file or directory". Non riesco a capire cosa posso fare di sbagliato, quindi chiamare os.getcwd(). Non ci sono argomenti e ci dovrebbe sempre essere una directory di lavoro corrente, giusto?Python: Perché os.getcwd() a volte si blocca con OSError?

+1

Non è necessario arrestare il programma. Le eccezioni sono una parte normale e sana di un programma Python, e così anche la loro gestione. Avvia la chiamata a os.getcwd() in una prova: -esclusa OSError:, invia un messaggio adatto se si verifica un'eccezione e continua con il tuo programma. – PaulMcG

+0

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

risposta

28

La directory corrente potrebbe essere stata cancellata da un altro processo.

+1

Grazie, era così. Da qualche parte ho fatto un inutile cambio di workdir, l'ho cancellato più tardi da qualche parte, e poi ho dimenticato di tornare indietro. – Eskil

+0

Ho un errore filiferfound su una chiamata os.getcwd in python. Sto cercando di eseguire il debug della mia applicazione. Posso comunque recuperare quale directory è stata cancellata? Lo spostamento –

7

Si potrebbe ottenere questo errore se la directory di lavoro corrente è stata cancellata. I programmi che funzionano in una particolare directory non si accorgono automaticamente se la directory viene cancellata; per quanto riguarda il programma, il CWD è solo una stringa, almeno finché non fai qualcosa come os.getcwd() che effettivamente accede a quel percorso sul filesystem. Quindi è possibile avere una directory corrente che non esiste.

Senza sapere di più sul tuo programma e sul suo ambiente di esecuzione, non potrei dirti se questo è ciò che sta realmente accadendo, però.

3

Si otterrebbe quell'errore se la directory corrente non esiste più (viene eliminata).

+2

non fa questo errore, solo cancella –

Problemi correlati