Spec-Zone.ru › Python 2.7

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API