У меня есть эта программа, которая в один момент обращается к os.getcwd(), но несколько раз, в зависимости от того, куда программа ушла, прежде чем попасть в эту строку, она вылетает с сообщением "OSError: [Errno 2] Нет такого файла или каталог". Я не могу понять, что я могу сделать неправильно, а затем вызвать os.getcwd(). Нет аргументов, и всегда должен быть текущий рабочий каталог, верно?
Python: Почему os.getcwd() иногда сбой с OSError?
Ответ 1
Текущая директория может быть удалена другим процессом.
Ответ 2
Вы можете получить эту ошибку, если текущий рабочий каталог был удален. Программы, которые работают в определенном каталоге, автоматически не замечают, удаляется ли каталог; что касается программы, CWD - это всего лишь строка, по крайней мере до тех пор, пока вы не сделаете что-то вроде os.getcwd()
, которое фактически обратится к этому пути в файловой системе. Таким образом, возможно иметь текущий каталог, который не существует.
Не зная больше о вашей программе и ее среде выполнения, я не мог сказать, действительно ли это происходит на самом деле.
Ответ 3
Вы получите эту ошибку, если ваш текущий каталог больше не существует (он удален).