Перейти к содержимому

Как в python указать текущую директорию

  • автор:

Модуль os.path

Python 3 логотип

os.path является вложенным модулем в модуль os, и реализует некоторые полезные функции для работы с путями.

os.path.abspath(path) — возвращает нормализованный абсолютный путь.

os.path.basename(path) — базовое имя пути (эквивалентно os.path.split(path)[1]).

os.path.commonprefix(list) — возвращает самый длинный префикс всех путей в списке.

os.path.dirname(path) — возвращает имя директории пути path.

os.path.exists(path) — возвращает True, если path указывает на существующий путь или дескриптор открытого файла.

os.path.expanduser(path) — заменяет ~ или ~user на домашнюю директорию пользователя.

os.path.expandvars(path) — возвращает аргумент с подставленными переменными окружения ($name или $ заменяются переменной окружения name). Несуществующие имена не заменяет. На Windows также заменяет %name%.

os.path.getatime(path) — время последнего доступа к файлу, в секундах.

os.path.getmtime(path) — время последнего изменения файла, в секундах.

os.path.getctime(path) — время создания файла (Windows), время последнего изменения файла (Unix).

os.path.getsize(path) — размер файла в байтах.

os.path.isabs(path) — является ли путь абсолютным.

os.path.isfile(path) — является ли путь файлом.

os.path.isdir(path) — является ли путь директорией.

os.path.islink(path) — является ли путь символической ссылкой.

os.path.ismount(path) — является ли путь точкой монтирования.

os.path.join(path1[, path2[, . ]]) — соединяет пути с учётом особенностей операционной системы.

os.path.normcase(path) — нормализует регистр пути (на файловых системах, не учитывающих регистр, приводит путь к нижнему регистру).

os.path.normpath(path) — нормализует путь, убирая избыточные разделители и ссылки на предыдущие директории. На Windows преобразует прямые слеши в обратные.

os.path.realpath(path) — возвращает канонический путь, убирая все символические ссылки (если они поддерживаются).

os.path.relpath(path, start=None) — вычисляет путь относительно директории start (по умолчанию — относительно текущей директории).

os.path.samefile(path1, path2) — указывают ли path1 и path2 на один и тот же файл или директорию.

os.path.sameopenfile(fp1, fp2) — указывают ли дескрипторы fp1 и fp2 на один и тот же открытый файл.

os.path.split(path) — разбивает путь на кортеж (голова, хвост), где хвост — последний компонент пути, а голова — всё остальное. Хвост никогда не начинается со слеша (если путь заканчивается слешем, то хвост пустой). Если слешей в пути нет, то пустой будет голова.

os.path.splitdrive(path) — разбивает путь на пару (привод, хвост).

os.path.splitext(path) — разбивает путь на пару (root, ext), где ext начинается с точки и содержит не более одной точки.

os.path.supports_unicode_filenames — поддерживает ли файловая система Unicode.

Для вставки кода на Python в комментарий заключайте его в теги

Как в python указать текущую директорию

Запись: and-semakin/mytetra_data/master/base/1525431554urk90zgb33/text.html на raw.githubusercontent.com

Получить путь до папки со скриптом:

Получить путь к рабочей директории:

  • Закодировать файл в base64 на Python
  • Рекурсивное создание директорий в Python
  • Сортировка в Python
  • Правильно добавить год/месяц к дате в Python
  • Отформатировать дату в Python
  • Получить рабочую директорию и директорию со скриптом в Python
  • Копия объекта в Python
  • Время выполнения программы на Python
  • Конвертировать datetime.timedelta в строку
  • Парсинг даты в Python
  • Конвертировать строку (str) в булевый тип (bool) в Python
  • Получить местный часовой пояс в Python
  • Проверить, что строка соответствует регулярному выражению в Python
  • Просмотреть доступные версии модулей в PIP
  • Получить целочисленный Unix timestamp в Python
  • getter и setter в Python
  • Настроить формат вывода логов в Python
  • Получить переменную окружения в Python
  • Обновить пакет в PIP
  • Получить имя (хостнейм) машины из Python
  • Вывести стэк вызовов при возникновении исключения в Python
  • Функция eval в Python
  • Дозаписывать (append) в файл в Python
  • Препроцессинг кода в Python
  • Проверить, что программа установлена из Python
  • Настроить путь для импорта библиотек в Python
  • Получить размер терминала в символах в Python
  • Enum с дополнительными полями в Python
  • Ошибка invalid command 'bdist_wheel' при установке пакета через PIP
  • Получить список аргументов функции из Python
  • Сделать словарь только для чтения в Python
  • Заматчить любой символ, включая перевод строки, в регулярных выражениях на Python
  • Получить список файлов в директории через pathlib в Python
  • Вывести действительное число с округлением до нескольких символов после запятой в Python
  • Вывод в терминал текста с цветами в Python
  • Перезагрузить импортированный модуль в Python
  • Безопасно создать список/словарь/любой объект из строкового представления в Python
  • Аналог декоратора @property для методов класса в Python
  • Перехватить ошибку TimeoutError в asyncio
  • Отключить вывод логов в Python
  • Уровни логгирования в Python
  • Удалить *.pyc и __pycache__ файлы
  • Выгрузить объект в JSON в Unicode в Python
  • Конвертировать datetime в другую часовую зону в Python
  • Дополнить строку нулями в Python
  • Вычислить MD5 от строки в Python
  • Удалить знаки пунктуации из строки в Python
  • Проверить, что первая буква в строке -- заглавная, в Python
  • Разбить (split) строку по нескольким разделителям в Python
  • Отсортировать версии в Python
  • Распаковать любой архив в Python
  • Получить имя текущего скрипта на Python
  • Установка pip на Python 2.6
  • Отличить печатаемый символ Unicode от непечатаемого на Python
  • Вывести версию интерпретатора Python в машиночитаемом виде
  • Найти место, куда Python устанавливает пакеты (dist-packages, site-packages)

Как получить и изменить текущий рабочий каталог в Python

При работе с файлами в каталогах в Python всегда рекомендуется использовать абсолютные пути. Однако, если вы работаете с относительными путями, вам необходимо понимать концепцию текущего рабочего каталога и то, как найти или изменить текущий рабочий каталог. Абсолютный путь указывает расположение файла или каталога, начиная с корневого каталога, а относительный путь начинается с текущего рабочего каталога.

Когда вы запускаете сценарий Python, в качестве текущего рабочего каталога устанавливается каталог, из которого выполняется сценарий.

Модуль os python обеспечивает переносимый способ взаимодействия с операционной системой. Модуль является частью стандартной библиотеки Python и включает методы поиска и изменения текущего рабочего каталога.

Получение текущего рабочего каталога в Python

Метод getcwd() модуля os в Python возвращает строку, содержащую абсолютный путь к текущему рабочему каталогу. Возвращенная строка не включает завершающий символ косой черты.

os.getcwd() 

Чтобы использовать методы модуля os, вы должны импортировать модуль в верхней части файла.

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

# Import the os module import os # Get the current working directory cwd = os.getcwd() # Print the current working directory print("Current working directory: ".format(cwd)) # Print the type of the returned object print("os.getcwd() returns an object of type: ".format(type(cwd))) 

Результат будет выглядеть примерно так:

Current working directory: /home/linuxize/Desktop os.getcwd() returns an object of type:

Если вы хотите найти каталог, в котором находится скрипт, используйте os.path.realpath(__file__) . Он вернет строку, содержащую абсолютный путь к запущенному скрипту.

Изменение текущего рабочего каталога в Python

Чтобы изменить текущий рабочий каталог в Python, используйте метод chdir() .

os.getcwd(path) 

Метод принимает один аргумент — путь к каталогу, в который вы хотите перейти. Аргумент path может быть абсолютным или относительным.

# Import the os module import os # Print the current working directory print("Current working directory: ".format(os.getcwd())) # Change the current working directory os.chdir('/tmp') # Print the current working directory print("Current working directory: ".format(os.getcwd())) 

Результат будет выглядеть примерно так:

Current working directory: /home/linuxize/Desktop Current working directory: /tmp 

Аргумент, передаваемый методу chdir() должен быть каталогом, в противном случае NotADirectoryError исключение NotADirectoryError . Если указанный каталог не существует, возникает исключение FileNotFoundError . Если у пользователя, от имени которого выполняется сценарий, нет необходимых разрешений, возникает исключение PermissionError .

# Import the os module import os path = '/var/www' try: os.chdir(path) print("Current working directory: ".format(os.getcwd())) except FileNotFoundError: print("Directory: does not exist".format(path)) except NotADirectoryError: print(" is not a directory".format(path)) except PermissionError: print("You do not have permissions to change to ".format(path)) 

Выводы

Чтобы найти текущий рабочий каталог в Python, используйте os.getcwd() , а для изменения текущего рабочего каталога используйте os.chdir(path) .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Python-сообщество

[RSS Feed]

  • Начало
  • » Python для новичков
  • » Как получить текущую директорию ?

#1 Март 4, 2009 17:50:33

Romann От: Зарегистрирован: 2009-03-04 Сообщения: 2 Репутация: 0 Профиль Отправить e-mail

Как получить текущую директорию ?

Привет всем!
Как получить текущую директорию ?
не бейте меня сильно, но я не нашел поиском ответ

#2 Март 4, 2009 17:54:50

Lexander От: Зарегистрирован: 2008-09-19 Сообщения: 1139 Репутация: 33 Профиль Отправить e-mail

Как получить текущую директорию ?

Romann
но я не нашел поиском ответ

#3 Март 4, 2009 17:55:06

ZAN От: Зарегистрирован: 2007-06-10 Сообщения: 403 Репутация: 10 Профиль Отправить e-mail

Как получить текущую директорию ?

>>> import os
>>> os.curdir
'.'
>>> os.path.abspath(os.curdir)
'/home/alex/Projects'

#4 Март 4, 2009 18:15:49

Romann От: Зарегистрирован: 2009-03-04 Сообщения: 2 Репутация: 0 Профиль Отправить e-mail

Как получить текущую директорию ?

Спасибо всем за быстрый ответ.
ту Lexander я не совсем в ладах с инглишем и мой запрос выглядел немного по иному. наверное потому и не нашел.

#5 Март 4, 2009 18:17:04

asv13 От: Зарегистрирован: 2007-01-22 Сообщения: 130 Репутация: 0 Профиль Отправить e-mail

Как получить текущую директорию ?

про curdir я не знал

>>> import os
>>> os.getcwd()
'C:\\Python25'
>>> os.path.abspath(os.curdir)
'C:\\Python25'

#6 Март 4, 2009 21:43:12

Ferroman От: Зарегистрирован: 2006-11-16 Сообщения: 2759 Репутация: 1 Профиль Отправить e-mail

Как получить текущую директорию ?

Стас
Ты за 5 минут написал 3 ответа и все или неправильно или не в тему. Ты б, может, больше читал и поменьше писал? Пока что…

#7 Март 4, 2009 22:02:34

Ferroman От: Зарегистрирован: 2006-11-16 Сообщения: 2759 Репутация: 1 Профиль Отправить e-mail

Как получить текущую директорию ?

1. А во-вторых человек спрашивает "Как получить текущую директорию"
2. Во-первых ответ уже написали, дублировать смысла нет.

#8 Март 5, 2009 11:44:29

igor.kaist От: Зарегистрирован: 2007-11-12 Сообщения: 1879 Репутация: 3 Профиль Отправить e-mail

Как получить текущую директорию ?

Ferroman
, Стасу порекомендовали не писать в “профи”, вот он и переключился на этот раздел. Думаю, следующим шагом будет “флейм”

#9 Март 12, 2009 00:42:53

regall От: Киев Зарегистрирован: 2008-07-17 Сообщения: 1583 Репутация: 3 Профиль Отправить e-mail

Как получить текущую директорию ?

os.path.abspath(os.curdir)

возвратит директорию, в которой находится стартовый скрипт. Чтобы получить директорию, в которой находится текущий модуль, необходимо проделать следующее

import os
basepath = os.path.abspath(os.path.dirname(sys.modules[----модуль----.__module__].__file__))
filepath = os.path.join(basepath, 'question.pt')
ptf = open(filepath,'r')

в таком случае - через получение пути к модулю на диске (определить текущую папку)

#10 Март 12, 2009 01:38:02

Андрей Светлов От: Зарегистрирован: 2007-05-15 Сообщения: 3137 Репутация: 14 Профиль Адрес электронной почты

Как получить текущую директорию ?

Все даже веселее.
os.curdir == os.path.curdir == ‘.’
Т.е. просто строка. В отличие от os.getcwd()
os.path.abspath(…) Умеет по ней построить нечто более вразумительное. Но такой подход выглядит как-то нехорошо

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *