os.path — Общие манипуляции с именами путей
Этот модуль реализует некоторые полезные функции для имён путей. Для чтения или записи файлов см. open(), а для доступа к файловой системе см. модуль os.
Примечание
В Windows многие из этих функций не поддерживают имена путей UNC должным образом. splitunc() и ismount() обрабатывают их корректно.
В отличие от оболочки Unix, Python не выполняет никаких автоматических расширений путей. Функции, такие как expanduser() и expandvars(), можно вызывать явно, когда приложение требует расширения путей в стиле оболочки. (См. также модуль glob.)
Примечание
Поскольку разные операционные системы имеют разные соглашения об именах путей, в стандартной библиотеке есть несколько версий этого модуля. Модуль os.path всегда является модулем путей, подходящим для операционной системы, на которой работает Python, и, следовательно, может использоваться для локальных путей. Однако вы также можете импортировать и использовать отдельные модули, если хотите манипулировать путем, который всегда находится в одном из различных форматов. Все они имеют одинаковый интерфейс:
-
posixpathдля путей в стиле Unix -
ntpathдля путей в стиле Windows -
macpathдля путей в стиле старой MacOS -
os2emxpathдля путей OS/2 EMX
-
os.path.abspath(path) -
Возвращает нормализованную абсолютизированную версию имени пути path. На большинстве платформ это эквивалентно вызову функции
normpath()следующим образом:normpath(join(os.getcwd(), path)).Новая в версии 1.5.2.
-
os.path.basename(path) -
Возвращает имя файла имени пути path. Это второй элемент пары, возвращаемой при передаче path в функцию
split(). Обратите внимание, что результат этой функции отличается от программы Unix basename; где basename для'/foo/bar/'возвращает'bar', функцияbasename()возвращает пустую строку ('').
-
os.path.commonprefix(list) -
Возвращает самое длинное префиксное имя пути (взятое посимвольно), которое является префиксом всех путей в list. Если list пусто, возвращает пустую строку (
''). Обратите внимание, что это может вернуть недопустимые пути, потому что он работает с символом за символом.
-
os.path.dirname(path) -
Возвращает имя каталога имени пути path. Это первый элемент пары, возвращаемой при передаче path в функцию
split().
-
os.path.exists(path) -
Возвращает
True, если path ссылается на существующий путь. ВозвращаетFalseдля прерванных символических ссылок. На некоторых платформах эта функция может вернутьFalse, если разрешение не предоставлено для выполненияos.stat()на запрошенном файле, даже если path физически существует.
-
os.path.lexists(path) -
Возвращает
True, если path ссылается на существующий путь. ВозвращаетTrueдля прерванных символических ссылок. Эквивалентноexists()на платформах, не имеющихos.lstat().Новая в версии 2.4.
-
os.path.expanduser(path) -
В Unix и Windows возвращает аргумент, в котором начальный компонент
~или~userзаменён домашним каталогом пользователя user.В Unix начальный
~заменяется переменной окруженияHOME, если она установлена; в противном случае домашний каталог текущего пользователя ищется в каталоге паролей через встроенный модульpwd. Начальный~userищется непосредственно в каталоге паролей.В Windows
HOMEиUSERPROFILEбудут использоваться, если установлены, в противном случае используется комбинацияHOMEPATHиHOMEDRIVE. Начальный~userобрабатывается удалением последнего компонента каталога из созданного пути пользователя, полученного выше.Если расширение завершится неудачей или путь не начинается с тильды, возвращается путь без изменений.
-
os.path.expandvars(path) -
Возвращает аргумент с расширенными переменными среды. Подстроки вида
$nameили${name}заменяются значением переменной среды name. Неправильные имена переменных и ссылки на несуществующие переменные остаются без изменений.В Windows поддерживаются расширения
%name%в дополнение к$nameи${name}.
-
os.path.getatime(path) -
Возвращает время последнего доступа к path. Значение возврата — число, представляющее количество секунд с эпохи (см. модуль
time). Вызываетos.error, если файл не существует или недоступен.Новая в версии 1.5.2.
Изменено в версии 2.3: Если
os.stat_float_times()возвращаетTrue, результат — число с плавающей точкой.
-
os.path.getmtime(path) -
Возвращает время последнего изменения path. Значение возврата — число, представляющее количество секунд с эпохи (см. модуль
time). Вызываетos.error, если файл не существует или недоступен.Новая в версии 1.5.2.
Изменено в версии 2.3: Если
os.stat_float_times()возвращаетTrue, результат — число с плавающей точкой.
-
os.path.getctime(path) -
Возвращает системное время ctime, которое на некоторых системах (например, Unix) является временем последнего изменения метаданных, а на других (например, Windows) — временем создания path. Значение возврата — число, представляющее количество секунд с эпохи (см. модуль
time). Вызываетos.error, если файл не существует или недоступен.Новая в версии 2.3.
-
os.path.getsize(path) -
Возвращает размер path в байтах. Вызывает
os.error, если файл не существует или недоступен.Новая в версии 1.5.2.
-
os.path.isabs(path) -
Возвращает
True, если path — абсолютный путь. В Unix это означает, что он начинается со слеша, в Windows — что он начинается с обратного слеша после удаления потенциальной буквы диска.
-
os.path.isfile(path) -
Возвращает
True, если path — существующий обычный файл. Это следует за символическими ссылками, поэтому иislink(), иisfile()могут быть истинными для одного и того же пути.
-
os.path.isdir(path) -
Возвращает
True, если path — существующий каталог. Это следует за символическими ссылками, поэтому иislink(), иisdir()могут быть истинными для одного и того же пути.
-
os.path.islink(path) -
Возвращает
True, если path ссылается на запись каталога, которая является символической ссылкой. ВсегдаFalse, если символические ссылки не поддерживаются исполняемой средой Python.
-
os.path.ismount(path) -
Возвращает значение
True, если путь path является точкой монтирования: точкой в файловой системе, где смонтирована другая файловая система. Функция проверяет, находится ли родительский каталог path,path/.., на другом устройстве, чем path, или указывают лиpath/..и path на один и тот же узел i-node на одном и том же устройстве — это должно обнаруживать точки монтирования для всех вариантов Unix и POSIX.
-
os.path.join(path, *paths) -
Разумно объединяет один или несколько компонентов пути. Возвращаемое значение — это конкатенация path и любых членов *paths с ровно одним разделителем каталогов (
os.sep) после каждого ненулевого компонента, кроме последнего, что означает, что результат будет содержать разделитель только в конце, если последний компонент пустой. Если компонент — абсолютный путь, все предыдущие компоненты отбрасываются, и объединение продолжается с компонента абсолютного пути.В Windows буква диска не сбрасывается при встрече компонента абсолютного пути (например,
r'\foo'). Если компонент содержит букву диска, все предыдущие компоненты отбрасываются, и буква диска сбрасывается. Обратите внимание, что поскольку для каждого диска существует текущая директория,os.path.join("c:", "foo")представляет собой путь, относительный к текущей директории на дискеC:(c:foo), а неc:\foo.
-
os.path.normcase(path) -
Нормализует регистр имени пути. В Unix и Mac OS X этот метод возвращает путь без изменений; в файловых системах с регистронезависимым режимом он преобразует путь в нижний регистр. В Windows он также преобразует косые черты в обратные слеши.
-
os.path.normpath(path) -
Нормализует путь, сворачивая избыточные разделители и ссылки на родительский каталог, так что
A//B,A/B/,A/./BиA/foo/../Bвсе станутA/B. Эта операция с строками может изменить значение пути, содержащего символические ссылки. В Windows он преобразует косые черты в обратные слеши. Для нормализации регистра используйтеnormcase().
-
os.path.realpath(path) -
Возвращает канонический путь указанного файла, устраняя любые символические ссылки, встречающиеся в пути (если они поддерживаются операционной системой).
Добавлен в версии 2.2.
-
os.path.relpath(path[, start]) -
Возвращает относительный путь к path, либо от текущей директории, либо от необязательной начальной директории start. Это вычисление пути: для подтверждения существования или типа path или start не производится доступ к файловой системе.
start по умолчанию равен
os.curdir.Доступность: Windows, Unix.
Добавлен в версии 2.6.
-
os.path.samefile(path1, path2) -
Возвращает
True, если оба имени пути ссылаются на один и тот же файл или каталог (как указано номером устройства и номером узла i-node). Если вызовos.stat()для любого имени пути завершается ошибкой, генерируется исключение.Доступность: Unix.
-
os.path.sameopenfile(fp1, fp2) -
Возвращает
True, если дескрипторы файлов fp1 и fp2 ссылаются на один и тот же файл.Доступность: Unix.
-
os.path.samestat(stat1, stat2) -
Возвращает
True, если кортежи stat stat1 и stat2 ссылаются на один и тот же файл. Эти структуры могут быть возвращены функциямиos.fstat(),os.lstat()илиos.stat(). Эта функция реализует основное сравнение, используемое функциямиsamefile()иsameopenfile().Доступность: Unix.
-
os.path.split(path) -
Разделяет имя пути path на пару,
(head, tail), где tail — последний компонент имени пути, а head — всё, что находится перед ним. Часть tail никогда не будет содержать слеш; если path заканчивается слешем, tail будет пустым. Если в path нет слешей, head будет пустым. Если path пустой, то и head, и tail пустые. Конечные слеши удаляются из head, если это не корень (только один или несколько слешей). Во всех случаях,join(head, tail)возвращает путь к тому же местоположению, что и path (но строки могут отличаться). Также см. функцииdirname()иbasename().
-
os.path.splitdrive(path) -
Разделяет имя пути path на пару
(drive, tail), где drive — это либо указание на диск, либо пустая строка. В системах, не использующих указания на диск, drive всегда будет пустой строкой. Во всех случаях,drive + tailбудет таким же, как path.Добавлен в версии 1.3.
-
os.path.splitext(path) -
Разделяет имя пути path на пару
(root, ext), такую, чтоroot + ext == path, а ext пустая или начинается с точки и содержит не более одной точки. Ведущие точки в имени файла игнорируются;splitext('.cshrc')возвращает('.cshrc', '').Изменено в версии 2.6: Более ранние версии могли создавать пустой корень, когда единственной точкой была первая.
-
os.path.splitunc(path) -
Разделяет имя пути path на пару
(unc, rest), где unc — это точка монтирования UNC (например,r'\\host\mount'), если она есть, а rest — остальная часть пути (например,r'\path\file.ext'). Для путей, содержащих буквы дисков, unc всегда будет пустой строкой.Доступность: Windows.
-
os.path.walk(path, visit, arg) -
Вызывает функцию visit с аргументами
(arg, dirname, names)для каждого каталога в древовидной структуре каталогов, укоренённой в path (включая сам path, если он является каталогом). Аргумент dirname указывает на посещаемый каталог, а аргумент names — список файлов в каталоге (полученный изos.listdir(dirname)). Функция visit может изменить names, чтобы повлиять на набор каталогов, посещаемых ниже dirname, например, чтобы избежать посещения определённых частей дерева. (Объект, на который ссылается names, должен быть изменён на месте, используяdelили присваивание с помощью срезов.)Примечание
Символические ссылки на каталоги не обрабатываются как подкаталоги, и поэтому
walk()не будет их посещать. Чтобы посетить связанные каталоги, необходимо идентифицировать их с помощьюos.path.islink(file)иos.path.isdir(file), и вызыватьwalk()по мере необходимости.Примечание
Эта функция устарела и была удалена в Python 3 в пользу
os.walk().
-
os.path.supports_unicode_filenames -
Trueесли произвольные строки Unicode могут использоваться в качестве имён файлов (в пределах ограничений, налагаемых файловой системой).Добавлен в версии 2.3.
© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/os.path.html