pipes — Интерфейс к трубопроводам shell

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

Утратил актуальность с версии 3.11, будет удален в версии 3.13: Модуль 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 по каналу.

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