Документация Python неофициальный перевод
Содержание страницы

33.10. pipes – Интерфейс к конвейерам оболочкиpipes – Interface to shell pipelines

Платформы: Unix

Модуль 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('/tmp/1', 'w')
>>> f.write('hello world')
>>> f.close()
>>> open('/tmp/1').read()
'HELLO WORLD'

33.10.1. Объекты TemplateTemplate Objects

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

Template.reset()
Восстанавливает шаблон конвейера в исходное состояние.
Template.clone()
Возвращает новый эквивалентный шаблон конвейера.
Template.debug(flag)
Если flag истинно, включить отладку. В противном случае выключить. Когда отладка включена, выводится список выполняемых команд, а оболочка получает команду set -x для более подробного вывода.
Template.append(cmd, kind)

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

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

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

Template.prepend(cmd, kind)
Добавляет новое действие в начало. Описание аргументов см. в append().
Template.open(file, mode)
Возвращает файлоподобный объект, открытый для file, но читаемый или записываемый конвейером. Обратите внимание, что можно указать только одно из значений: 'r', 'w'.
Template.copy(infile, outfile)
Копирует infile в outfile через конвейер.