Шаг 89.
Python: сборник рецептов.
Файлы и ввод-вывод. Манипулирование путями к файлам

    На этом шаге мы рассмотрим некоторые возможности модуля os.path.

Задача

    Вам нужно манипулировать путями к файлам, чтобы найти имя файла, название каталога, абсолютный путь и т. д.

Решение

    Для работы с файловыми путями используйте функции из модуля os.path. Вот пример, который иллюстрирует несколько ключевых возможностей:

>>> import os
>>> path = '/Users/beazley/Data/data.csv'
>>> # Получение последнего компонента пути 
>>> os.path.basename(path)
'data.csv'
>>> # Получение имени каталога 
>>> os.path.dirname(path)
'/Users/beazley/Data'
>>> # Соединение компонентов пути
>>> os.path.join('tmp', 'data', os.path.basename(path))
'tmp/data/data.csv'
>>> # Раскрытие домашнего каталога пользователя 
>>> path = '~/Data/data.csv'
>>> os.path.expanduser(path)
'/Users/beazley/Data/data.csv'
>>> # Отделение расширения файла 
>>> os.path.splitext(path)
('~/Data/data', '.csv')
>>>


Обсуждение

    Для любых манипуляций с именами файлов вы должны использовать модуль os.path, а не изобретать собственный код из стандартных строковых операций. Во-первых, это важно для переносимости. Модуль os.path понимает различия между Unix и Windows и может надежно работать с именами типа Data/data.csv и Data\data.csv. Во-вторых, вы не должны тратить время на изобретение колеса. Обычно лучше использовать готовые решения.

    Стоит отметить, что в модуле os.path намного больше возможностей, чем показано в этом рецепте. Обратитесь к документации, чтобы узнать о функциях для тестирования файлов, работы с символическими ссылками и т. д.

    На следующем шаге мы рассмотрим проверку существования файла.




Предыдущий шаг Содержание Следующий шаг