pipes — Интерфейс для конвейеров оболочки


Модуль pipes определяет класс для абстракции концепции конвейеров
— последовательность конвертеров из одного файла в другой.

Поскольку модуль использует командные строки /bin/sh, требуется POSIX или совместимая оболочка для os.system() и os.popen().

Модуль pipes определяет следующий класс:

class pipes.Template

Абстракция конвейера.

Пример:

>>> import pipes
>>> t = pipes.Template()
>>> t.append('tr a-z A-Z', '--')
>>> f = t.open('pipefile', 'w')
>>> f.write('hello world')
>>> f.close()
>>> open('pipefile').read()
'HELLO WORLD'

Template объекты

У объектов Template следующие методы:

Template.reset()

Восстанавливает шаблон конвейера в исходное состояние.

Template.clone()

Возвращает новый эквивалентный шаблон конвейера.

Template.debug(flag)

Если значение flag равно истина, включает отладку. В противном случае отключает отладку. Когда отладка включена, печатаются выполняемые команды, и оболочке дается команда set -x, чтобы быть более подробной.

Template.append(cmd, kind)

Добавляет новое действие в конце. Переменная cmd должна быть допустимой командой оболочки Борна. Переменная kind состоит из двух букв.

Первая буква может быть либо '-' (что означает, что команда читает свой стандартный ввод), 'f' (что означает, что команды считывают данный файл в командной строке), либо '.' (что означает, что команды не считывают ввод и, следовательно, должны быть первыми).

Точно так же вторая буква может быть '-' (что означает, что команда записывает в стандартный вывод), 'f' (что означает, что команда записывает файл в командной строке) или '.' (что означает, что команда ничего не записывает и, следовательно, должна быть последним.)

Template.prepend(cmd, kind)

Добавляет новое действие в начале. См. append() для объяснения аргументов.

Template.open(file, mode)

Возвращает файлоподобный объект, открытый для file, но считываемый из конвейера или записываемый в него. Обратите внимание, что может быть задан только один из 'r', 'w'.

Template.copy(infile, outfile)

Копирует infile в outfile через конвейер.