pipes — Интерфейс к конвейерам оболочки
Исходный код: Lib/pipes.py
Модуль 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.reset() -
Восстановить шаблон конвейера до его начального состояния.
-
Template.clone() -
Возвращает новый, эквивалентный шаблон конвейера.
-
Template.debug(flag) -
Если flag имеет значение true, включить отладку. В противном случае, выключить отладку. При включенной отладке команды, которые будут выполняться, выводятся на экран, и оболочке предоставляется
set -xкоманда для большей подробности.
-
Template.append(cmd, kind) -
Добавить новое действие в конец. Переменная cmd должна быть допустимой командой оболочки bourne. Переменная kind состоит из двух букв.
Первая буква может быть любой из
'-'(что означает, что команда читает свой стандартный ввод),'f'(что означает, что команды считывает указанный файл в командной строке) или'.'(что означает, что команда не считывает никакого ввода, и поэтому должна быть первой).Аналогично, вторая буква может быть любой из
'-'(что означает, что команда записывает в стандартный вывод),'f'(что означает, что команда записывает файл в командной строке) или'.'(что означает, что команда ничего не записывает, и поэтому должна быть последней).
-
Template.prepend(cmd, kind) -
Добавить новое действие в начало. См.
append()для объяснений аргументов.
-
Template.open(file, mode) -
Возвращает файлоподобный объект, открытый для file, но считывает или записывает данные через конвейер. Обратите внимание, что только один из
'r','w'может быть задан.
-
Template.copy(infile, outfile) -
Скопировать infile в outfile через конвейер.
© 2001–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.8/library/pipes.html