Разбиение и объединение результатов вывода

razbienie i obedinenie rezultatov vyvoda Инструменты для работы с файлами и каталогами

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

>  >> dirname = r’C:\temp\parts’

>>> 

>  >> import glob

>  >> for file in glob.glob(dirname + ‘/*’):

head, tail = os.path.split(file)

print(head, tail, ‘=>’, (‘C:\\Other\\’ + tail))

C:\temp\parts part0001 => C:\Other\part0001

C:\temp\parts part0002 => C:\Other\part0002

C:\temp\parts part0003 => C:\Other\part0003

C:\temp\parts part0004 => C:\Other\part0004

Здесь после => показаны полные имена файлов, которые получатся после перемещения. Напротив, сценарию, который должен обработать все файлы в каталоге, отличном от того, в котором он выполняется, вероятно, потребуется добавить к результатам функции listdir имя целевого каталога, прежде чем предавать имена файлов другим инструментам:

>  >> import os

>  >> for file in os.listdir(dirname):

print(dirname, file, ‘=>’, os.path.join(dirname, file))

C:\temp\parts part0001 => C:\temp\parts\part0001

C:\temp\parts part0002 => C:\temp\parts\part0002

C:\temp\parts part0003 => C:\temp\parts\part0003

C:\temp\parts part0004 => C:\temp\parts\part0004

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

Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, I том, 2011

Оцените статью
Секреты программирования
Добавить комментарий