Vilibb
@Vilibb
Пытаюсь изучить какой-либо ЯП.

Почему код так себя ведёт?

Добрый день, проблема такая.
Импортирую модуль os. Создаю класс, с конструктором класса, в нем следующее.
class SG():
    def __init__(self):
        self.local_drive = os.environ['systemdrive']

Далее перехожу в папку os.chdir('C:/Dir1'), копирую в нее файлы через shutil.copy, а потом, допустим, мне нужно эту папку удалить. Если делать это сразу, то выдаёт ошибку, оно и понятно, мы же как бы держим папку открытой. Выполняю код - os.chdir(self.local_drive). Пробую удалить папку еще раз снова та же ошибка, если посмотреть путь с помощью os.getcwd(), то показывает C:/Dir1. Однако, если перейти не в корень диска, а скажем в папку с виндой( я сижу на винде), то всё удаляется нормально. Почему так происходит?
  • Вопрос задан
  • 426 просмотров
Решения вопроса 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
А потому что винда! Она не меняет каталог, если происходит только выбор диска.
Вызовите cmd и сделайте следующее:
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.
C:\Users\leah>cd C:
C:\Users\leah
C:\Users\leah>cd C:\
C:\>

Соответственно, вам к local_drive достаточно добавить "\"
os.chdir(self.local_drive+os.sep)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы