Я пытаюсь создать свою первую программу на Python, которая удаляет все пустые каталоги в d:\source. Похоже, я даже не могу войти в каталог с моими текущими навыками:
import os
os.getcwd()
os.chdir("D:\\SOURCE")
os.getcwd()
Все, что я получаю, это...
D:\CODING\venv\Scripts\python.exe D:/CODING/tester.py
Process finished with exit code 0
Кажется, рабочий каталог не изменился, как мне это проверить? Почему он вообще не отображает результаты/ошибки для os.chdir("D:\\SOURCE") или второй os.getcwd() команды?
Закрытие как не репро.
Он не изменит рабочий каталог вашей оболочки, если это то, что вы ожидали. Только рабочий каталог впоследствии в вашем скрипте (как вы должны увидеть, если распечатаете его).






Вам нужно распечатать результат.
import os
print(os.getcwd())
os.chdir("D:\\SOURCE")
print(os.getcwd())
Скорее всего, ваша программа действительно меняет каталог. Но вы не можете видеть это:
os.getcwd() не сделает ничего видимого: он извлекает текущий рабочий каталог и отбрасывает его. Вместо этого вы должны сделать print(os.getcwd())Как будет выглядеть os.chdir("D:\\SOURCE") с дополнительной защитой? Например, если смена каталога не удалась, не продолжайте.
@Bricktop Давайте попробуем: >>> os.chdir("doesn't exist") приводит к исключению OSError: [Errno 2] No such file or directory: "doesn't exist". Итак, вы окружаете его try: и except OSError, e: и проверяете свойства e.
Я понимаю все, кроме части свойств e: и e, но у меня есть условия для работы. Можно ли просто запустить окно выбора каталога для отсутствующего каталога?
@Bricktop Ну, по сути, это базовый Обработка исключений, который вам нужно поискать. Конечно, можно запустить диалоговое окно выбора: см. здесь.
os.chdir() не возвращает никакого значения. Он просто изменит каталог. Как было предложено в других ответах, вы можете распечатать/вывести текущий каталог, используя
os.chdir("D:\\SOURCE")
print(os.getcwd())
Ни одна из этих команд ничего не выводит. попробуй:
print(os.getcwd())