Доброго времени суток, читатели, зрители моего канала 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.