2010-07-09 2 views
20

한 번에 os.getcwd()에 액세스하지만이 프로그램이 해당 행에 도달하기 전에 프로그램이 종료 된 위치에 따라 "OSError : [Errno 2] No such file or 예배 규칙서". 내가 뭘 잘못해서 os.getcwd()를 호출 할 수 있는지 알 수 없습니다. 인수가 없으며 항상 현재 작업 디렉토리가 있어야합니다.Python : os.getcwd()가 OSError와 충돌하는 이유는 무엇입니까?

+1

프로그램이 중단 될 필요가 없습니다. 예외는 파이썬 프로그램의 정상적이고 건강한 부분이며, 예외 처리도 마찬가지입니다. try : -except OSError :에서 os.getcwd()에 대한 호출을 감싸고 예외가 발생하면 적절한 메시지를 출력하고 프로그램을 계속 진행하십시오. – PaulMcG

+0

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

답변

28

현재 프로세스가 다른 프로세스에서 삭제되었을 수 있습니다.

+1

고맙습니다. 어딘가에서 불필요한 workdir 변경을 수행하고, 나중에 어딘가에서 삭제 한 다음 다시 변경하는 것을 잊었습니다. – Eskil

+0

파이썬에서 os.getcwd 호출에 대해 filenotfound 오류가 발생했습니다. 내 응용 프로그램을 디버깅하려고합니다. 어쨌든 나는 어떤 디렉토리가 삭제되었는지를 검색 할 수 있습니까? –

7

현재 작업 디렉토리가 삭제되면 오류가 발생할 수 있습니다. 특정 디렉토리에서 작동하는 프로그램은 디렉토리가 삭제되면 자동으로 알리지 않습니다. 프로그램에 관한 한 CWD는 적어도 파일 시스템의 해당 경로에 실제로 액세스하는 os.getcwd()과 같은 작업을 수행하기 전까지는 문자열입니다. 따라서 존재하지 않는 현재 디렉토리를 가질 수 있습니다.

프로그램과 실행 환경에 대해 알지 못해도 실제로 그런 일이 발생했는지는 알 수 없습니다.

3

현재 디렉토리가 더 이상 존재하지 않으면 (삭제됨) 오류가 발생합니다.

+2

이동은이 오류를 만들지 않고 삭제 만합니다. –

관련 문제