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

Исходный код: Lib/pipes.py


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

Поскольку модуль использует командные строки /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()

Возвращает шаблон pipeline его начальному состояние.

Template.clone()

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

Template.debug(flag)

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

Template.append(cmd, kind)

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

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

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

Template.prepend(cmd, kind)

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

Template.open(file, mode)

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

Template.copy(infile, outfile)

Копировать infile в outfile через пайп.