Работа с путями и директориями в Python с помощью модуля os.path
Модуль os.path предоставляет набор функций для работы с файловой системой и путями в ОС. Он предоставляет кросс-платформенный способ создания, обработки и проверки путей к файлам и директориям.
Рассмотрим основные функции модуля os.path:
1. os.path.basename(path) - возвращает имя файла из переданного пути:
python
import os
path = '/home/user/files/file.txt'
print(os.path.basename(path))
# Output: 'file.txt'
2. os.path.dirname(path) - возвращает директорию из переданного пути:
python
import os
path = '/home/user/files/file.txt'
print(os.path.dirname(path))
# Output: '/home/user/files'
3. os.path.exists(path) - проверяет, существует ли файл или директория по указанному пути:
python
import os
path = '/home/user/files/file.txt'
print(os.path.exists(path))
# Output: True
4. os.path.join() - объединяет пути из нескольких элементов, используя правильные разделители в зависимости от ОС:
python
import os
folder = '/home/user/files'
file = 'file.txt'
path = os.path.join(folder, file)
print(path)
# Output: '/home/user/files/file.txt'
5. os.path.normpath(path) - возвращает нормализованный путь (комбинирует элементы, удаляет вложенность, исправляет разделители):
python
import os
path = '/home/user/../files/file.txt'
print(os.path.normpath(path))
# Output: '/home/files/file.txt'
6. os.path.splitext(path) - возвращает кортеж, содержащий имя файла и его расширение:
python
import os
path = '/home/user/files/file.txt'
print(os.path.splitext(path))
# Output: ('/home/user/files/file', '.txt')
7. os.path.isfile(path) и os.path.isdir(path) - проверяют, является ли указанный путь файлом или директорией соответственно:
python
import os
file_path = '/home/user/files/file.txt'
dir_path = '/home/user/files'
print(os.path.isfile(file_path))
# Output: True
print(os.path.isdir(file_path))
# Output: False
print(os.path.isdir(dir_path))
# Output: True
8. os.path.getsize(path) - возвращает размер указанного файла в байтах:
python
import os
path = '/home/user/files/file.txt'
print(os.path.getsize(path))
# Output: 1024 (например)
Эти функции и методы помогают писать кросс-платформенный код для работы с файловой системой и путями в ОС. Они гарантированно работают правильно на всех операционных системах.