2010-07-09 31 views
20

Tôi có chương trình này tại một thời điểm truy cập os.getcwd(), nhưng một số lần, tùy thuộc vào nơi chương trình đã đi trước khi đến dòng đó, nó đổ vỡ với thông báo "OSError: [Errno 2] Không có tệp nào hoặc danh mục". Tôi không thể tìm ra những gì tôi có thể làm sai sau đó gọi os.getcwd(). Không có đối số, và luôn luôn có một thư mục làm việc hiện tại, phải không?Python: Tại sao os.getcwd() đôi khi gặp sự cố với OSError?

+1

Không cần chương trình của bạn gặp sự cố. Trường hợp ngoại lệ là một phần bình thường và lành mạnh của một chương trình Python, và do đó là xử lý của chúng. Kết thúc cuộc gọi của bạn tới os.getcwd() trong một lần thử: -except OSError:, xuất ra một thông điệp phù hợp nếu ngoại lệ xảy ra và tiếp tục với chương trình của bạn. – PaulMcG

+0

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

Trả lời

28

Thư mục hiện tại có thể đã bị xóa bởi một quy trình khác.

+1

Cảm ơn, đó là nó. Một nơi nào đó tôi đã làm một số thay đổi không cần thiết của workdir, xóa nó sau đó một nơi nào đó, và sau đó quên thay đổi trở lại. – Eskil

+0

Tôi có một lỗi filenotfound trên một cuộc gọi os.getcwd trong python. Tôi đang cố gỡ lỗi ứng dụng của mình. Có anyway tôi có thể lấy những gì thư mục đã bị xóa? –

7

Bạn có thể gặp lỗi đó nếu thư mục làm việc hiện tại đã bị xóa. Các chương trình đang làm việc trong một thư mục cụ thể không tự động thông báo nếu thư mục bị xóa; theo như chương trình có liên quan, CWD chỉ là một chuỗi, ít nhất cho đến khi bạn làm một cái gì đó như os.getcwd() mà thực sự truy cập đường dẫn đó trên hệ thống tập tin. Vì vậy, nó có thể có một thư mục hiện tại mà không tồn tại.

Nếu không biết nhiều hơn về chương trình của bạn và môi trường thực thi của chương trình, tôi không thể cho bạn biết đó có phải là điều thực sự xảy ra hay không.

3

Bạn sẽ gặp lỗi đó nếu thư mục hiện tại của bạn không còn tồn tại nữa (nó sẽ bị xóa).

+2

di chuyển không gây ra lỗi này, chỉ xóa –

Các vấn đề liên quan