pipes.md
1> **Источник:** https://python-all.ru/3.11/library/pipes.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# [`pipes`](https://python-all.ru/3.11/library/pipes.html#module-pipes) – Интерфейс к конвейерам оболочки89**Исходный код:** [Lib/pipes.py](https://python-all.ru/src/3.11/Lib/pipes.py)1011Устарело с версии 3.11, будет удалено в версии 3.13: Модуль [`pipes`](https://python-all.ru/3.11/library/pipes.html#module-pipes) устарел (см. [**PEP 594**](https://python-all.ru/3.11/library/pipes.html) для подробностей). Вместо него используйте модуль [`subprocess`](https://python-all.ru/3.11/library/subprocess.html#module-subprocess).1213---1415Модуль [`pipes`](https://python-all.ru/3.11/library/pipes.html#module-pipes) определяет класс, который абстрагирует понятие *конвейера* – последовательности преобразователей из одного файла в другой.1617Поскольку модуль использует командные строки **/bin/sh**, требуется POSIX-совместимая оболочка для [`os.system()`](https://python-all.ru/3.11/library/os.html#os.system) и [`os.popen()`](https://python-all.ru/3.11/library/os.html#os.popen).1819[Доступность](https://python-all.ru/3.11/library/intro.html#availability): Unix, не VxWorks.2021Модуль [`pipes`](https://python-all.ru/3.11/library/pipes.html#module-pipes) определяет следующий класс:2223#### `class pipes.Template`2425Абстракция конвейера.2627Пример:2829```python30>>> import pipes31>>> t = pipes.Template()32>>> t.append('tr a-z A-Z', '--')33>>> f = t.open('pipefile', 'w')34>>> f.write('hello world')35>>> f.close()36>>> open('pipefile').read()37'HELLO WORLD'38```3940## Объекты Template4142У объектов Template есть следующие методы:4344#### `Template.reset()`4546Восстанавливает шаблон конвейера в исходное состояние.4748#### `Template.clone()`4950Возвращает новый эквивалентный шаблон конвейера.5152#### `Template.debug(flag)`5354Если *flag* равен true, включить отладку. В противном случае выключить. Когда отладка включена, выводится список команд, которые будут выполнены, а оболочке передаётся команда `set -x` для более подробного вывода.5556#### `Template.append(cmd, kind)`5758Добавляет новое действие в конец. Переменная *cmd* должна быть корректной командой Bourne shell. Переменная *kind* состоит из двух букв.5960Первая буква может быть либо `'-'` (команда читает свой стандартный ввод), `'f'` (команда читает указанный файл из командной строки) или `'.'` (команда не читает никаких данных, поэтому должна быть первой).6162Аналогично, вторая буква может быть либо `'-'` (команда пишет в стандартный вывод), `'f'` (команда пишет в файл, указанный в командной строке) или `'.'` (команда ничего не пишет, поэтому должна быть последней).6364#### `Template.prepend(cmd, kind)`6566Добавляет новое действие в начало. См. [`append()`](https://python-all.ru/3.11/library/pipes.html#pipes.Template.append) для объяснения аргументов.6768#### `Template.open(file, mode)`6970Возвращает файлоподобный объект, открытый для *file*, но данные читаются из конвейера или записываются в конвейер. Обратите внимание, что можно указать только одно из значений `'r'`, `'w'`.7172#### `Template.copy(infile, outfile)`7374Копирует *infile* в *outfile* через конвейер.75