Модуль os.path в Python
Методы работы с файлами/каталогами в Python OS
Модуль os.path в основном используется для получения атрибутов файлов.
Ниже приведены несколько часто используемых методов модуля os.path:
| Метод | Описание |
|---|---|
| os.path.abspath(path) | Возвращает абсолютный путь |
| os.path.basename(path) | Возвращает имя файла |
| os.path.commonprefix(list) | Возвращает самый длинный общий путь для всех путей в списке (несколько путей) |
| os.path.dirname(path) | Возвращает путь к файлу |
| os.path.exists(path) | Если путь существует, возвращает True; если путь не существует или является битым, возвращает False. |
| os.path.lexists(path) | Возвращает True, если путь существует, а также возвращает True, если путь является битым |
| os.path.expanduser(path) | Преобразует "~", содержащийся в path~и~user, в домашний каталог пользователя |
| os.path.expandvars(path) | Заменяет в соответствии со значениями переменных окруженияв pathвхождения$nameи${name} |
| os.path.getatime(path) | Возвращает время последнего доступа (в секундах с плавающей запятой) |
| os.path.getmtime(path) | Возвращает время последнего изменения файла |
| os.path.getctime(path) | Возвращает время создания файла path |
| 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) | Нормализует строковую форму пути |
| os.path.realpath(path) | Возвращает реальный путь для path |
| os.path.relpath(path[, start]) | Вычисляет относительный путь начиная от start |
| os.path.samefile(path1, path2) | Определяет, совпадают ли каталоги или файлы |
| os.path.sameopenfile(fp1, fp2) | Определяет, указывают ли fp1 и fp2 на один и тот же файл |
| os.path.samestat(stat1, stat2) | Определяет, указывают ли кортежи stat stat1 и stat2 на один и тот же файл |
| os.path.split(path) | Разделяет путь на dirname и basename, возвращая кортеж |
| os.path.splitdrive(path) | Обычно используется в Windows, возвращает кортеж из имени диска и пути |
| os.path.splitext(path) | Разделяет путь, возвращая кортеж из имени пути и расширения файла |
| os.path.splitunc(path) | Разделяет путь на точку монтирования и файл |
| os.path.walk(path, visit, arg) | Обходит путь, вызывая функцию visit при входе в каждый каталог. Функция visit должна иметь 3 параметра (arg, dirname, names); dirname — имя текущего каталога, names — все имена файлов в текущем каталоге, а arg — третий параметр walk. |
| os.path.supports_unicode_filenames | Указывает, поддерживаются ли имена путей в Unicode |
Пример
В следующем примере демонстрируется использование связанных с os.path методов:
Пример
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
print( os.path.basename('/root/example.txt') ) # Возвращает имя файла
print( os.path.dirname('/root/example.txt') ) # Возвращает путь к каталогу
print( os.path.split('/root/example.txt') ) # Разделяет имя файла и путь
print( os.path.join('root','test','example.txt') ) # Объединяет каталог и имя файла в путь
При выполнении вышеуказанной программы выводится:
example.txt
/root
('/root', 'example.txt')
root/test/example.txt
В следующем примере выводится информация о файлах.
Пример
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
import time
file='/root/example.txt' # Путь к файлу
print( os.path.getatime(file) ) # Выводит время последнего доступа
print( os.path.getctime(file) ) # Выводит время создания файла
print( os.path.getmtime(file) ) # Вывод времени последнего изменения
print( time.gmtime(os.path.getmtime(file)) ) # Вывод времени последнего изменения в форме struct_time
print( os.path.getsize(file) ) # Вывод размера файла (в байтах)
print( os.path.abspath(file) ) # Вывод абсолютного пути
print( os.path.normpath(file) ) # Нормализовать строковую форму пути
При выполнении вышеуказанной программы выводится:
1539052805.5735736 1539052805.5775735 1539052805.5735736 time.struct_time(tm_year=2018, tm_mon=10, tm_mday=9, tm_hour=2, tm_min=40, tm_sec=5, tm_wday=1, tm_yday=282, tm_isdst=0) 7 /root/example.txt /root/example.txtДругие расширения