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

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

Не рекомендуется, начиная с версии 3.11: Модуль pipes является устаревшим (подробнее см. PEP 594). Вместо него используйте модуль subprocess.


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

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

Availability: Unix. Недоступно на VxWorks.

Модуль 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.reset()

Восстановление исходного состояния шаблона трубопровода.

Template.clone()

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

Template.debug(flag)

Если flag равен true, включите отладку. В противном случае отладка выключается. Когда отладка включена, команды, которые будут выполняться, выводятся на печать, а оболочке дается команда 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 через трубу.

Вернуться на верх