Подтвердить что ты не робот

Как получить текущий рабочий каталог с помощью python 3?

Когда я запускаю следующий script в IDLE

import os
print(os.getcwd())

Я получаю вывод как

D:\testtool

но когда я запускаюсь из приглашения cmd, я получаю

c:\Python33>python D:\testtool\current_dir.py
c:\Python33

Как получить тот же результат, который я получил с помощью IDLE?

4b9b3361

Ответ 1

Кажется, что IDLE изменяет текущую рабочую директорию на местоположение выполняемого script, тогда как при запуске script с использованием cmd этого не происходит, и он оставляет CWD как есть.

Чтобы изменить текущий рабочий каталог на тот, который содержит ваш script, вы можете использовать:

import os
os.chdir(os.path.dirname(__file__))
print(os.getcwd())

Переменная __file__ доступна только в том случае, если вы выполняете script из файла и содержит путь к файлу. Подробнее об этом здесь: Python __file__ атрибут абсолютный или относительный?

Ответ 2

Используя pathlib, вы можете получить папку, в которой находится текущий файл. __file__ - путь к файлу, из которого был загружен модуль. Ссылка: документы

import pathlib

current_dir = pathlib.Path(__file__).parent
current_file = pathlib.Path(__file__)

Документ ссылки: ссылка