Найти в Дзене

Стандартные библиотеки в Python. Библиотека os, модуль path. Приложение 5 к видео 10

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Приложение к уроку

См. также Приложение 1, Приложение 2, Приложение 3, Приложение 4.

О модуле os.path

С модулем os.path или как его ещё назвал подбиблиотекой, мы уже немного познакомились. Сегодня не много справочного материала по нему.

  • os.path.abspath() — нормализация пути. Путь нормализуется относительно текущего каталога. Следует подчеркнуть, что метод ничего не ищет. Если вы указали какое-то имя, то оно указывается относительно полного пути текущего каталога. Например
    pt = '..'
    print(os.path.abspath(pt))
    pt = 'qwerty'
    print(os.path.abspath(pt))

    Результат
    /home/vladislav/Yandex.Disk/projects/programming/python2/os
    /home/vladislav/Yandex.Disk/projects/programming/python2/os/os3/qwerty
  • os.path.supports_unicode_filenames — свойство содержит True, если файловая система поддерживает Unicode, с ограничениями, накладываемыми на имена операционной системой. Например
    print(os.path.supports_unicode_filenames)
    Результат
    False
  • os.path.basename() — возвращает базовое имя пути. Например,
    pt = '/home/vladislav/.pgpass'
    print(os.path.basename(pt))

    Результат
    .pgpass
  • os.path.commonpath() — возвращает самый длинный общий путь. Все пути должны быть либо абсолютными, либо относительными.
    Например
    pt1 = '/home/vladislav'
    pt2 = '/home/vladislav/Yandex.Disk'
    print(os.path.commonpath([pt1, pt2]))

    Результат
    /home/vladislav
  • os.path.commonprefix() — возвращает самый длинный префикс из списка. Префикс может не совпадать с реальным путём. Поэтому лучше пользоваться commonpath().
    Например
    pt1 = '/home/vladislav'
    pt2 = '/home/vlad/Yandex.Disk'
    print(os.path.commonprefix([pt1, pt2]))

    Результат
    /home/vlad
  • os.path.dirname() — сообщает имя каталога указанного пути.
    Например
    pt = '/home/vladislav'
    print(os.path.dirname(pt))
    pt = '/home/vladislav/Yandex.Disk'
    print(os.path.dirname(pt))

    Результат
    /home
    /home/vladislav
  • os.path.exists() — возвращает, если путь реален. Например
    pt = '/home/vladislav'
    print(os.path.exists(pt))
    pt = '/home/vladislav1'
    print(os.path.exists(pt
    ))

    Результат
    True
    False
  • os.path.expanduser() — путь со знаком '~' 'домашний' заменяется на полный путь.
    Например
    pt = '~/Yandex.Disk'
    print(os.path.expanduser(pt))

    Результат
    /home/vladislav/Yandex.Disk
  • os.path.expandvars() — возвращает строку заменяя переменные среды ($nm или ${nm}) на их значение. К переменным среды мы еще обратимся.
  • os.path.getatime(), os.path.getmtime(), os.path.getctime(path) — получить временные характеристики указанного элемента каталога.
  • os.path.getsize() — получить длину файла.
  • os.path.splitext() — делит путь на пару: путь и расширение
    Например
    pt = '/home/vladislav/Yandex.Disk'
    print(os.path.splitext(pt))
    pt = '/home/vladislav'
    print(os.path.splitext(pt))

    Результат
    ('/home/vladislav/Yandex', '.Disk')
    ('/home/vladislav', '')
  • os.path.splitdrive() — разделяет путь на пару (dr, tl), где dr — либо точка монтирования, либо пустая строка. Например
    pt = '/home/vladislav/Yandex.Disk'
    print(os.path.splitdrive(pt))

    Результат
    ('', '/home/vladislav/Yandex.Disk')
  • os.path.split() — разделяет полный путь на пару. Например
    pt = '/home/vladislav/Yandex.Disk'
    print(os.path.split(pt))

    Результат
    ('/home/vladislav', 'Yandex.Disk')
  • os.path.isabs() — возвращает True, если путь абсолютный. Например
    pt = '/home/vladislav/Yandex.Disk'
    print(os.path.isabs(pt))
    pt = '../vladislav/Yandex.Disk'
    print(os.path.isabs(pt))

    Результат
    True
    False
  • os.path.isfile(), os.path.isdir(), os.path.link(), os.path.mount() — возвращает True, если элемент является файлом, каталогом, символьной ссылкой, точкой монтирования соответственно.
  • path.join() — соединяет несколько путей в один. Мы уже использовали этот метод несколько раз. Например
    print(os.path.join('/home', 'vladislav', 'Yandex.Disk'))

    Результат
    /home/vladislav/Yandex.Disk
  • os.path.samestat(stat1, stat2) — возвращает True, если статистики (os.lstat()) относятся к одному и тому же файлу.
  • os.path.sameopenfile(fp1, fp2) — возвращает True, если файловые дескрипторы относятся к одному и тому же файлу.
  • os.path.samefile(path1, path2) — возвращает True, если оба пути относятся к одному и тому же файлу.
  • os.path.relpath(pt, start=os.curdir) — возвращает относительный путь к файлу pt либо из текущего каталога, либо из необязательного каталога start. Например
    pt = '/home'
    print(os.path.relpath(pt))

    Результат
    ../../../../../../..
  • os.path.normpath() — нормализовать имя пути, свернув избыточные разделители и ссылки верхнего уровня, чтобы A//B, A/B/, A/./B и A/foo/../B превратились в A/B. Манипуляция со строкой может изменить значение пути, содержащего символические ссылки.
  • os.path.normcase() работает только в Windows. Переводит все буквы пути в нижний регистр, а также меняет косую черту на обратную.

Хорошего программирования. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.

Учиться программировать нужно ограничивая себя в использовании библиотек
Учиться программировать нужно ограничивая себя в использовании библиотек