pipes.md
1> **Источник:** https://python-all.ru/3.1/library/pipes.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 33.10. `pipes` – Интерфейс к конвейерам оболочки89*Платформы:* Unix1011Модуль `pipes` определяет класс, абстрагирующий понятие *конвейера* – последовательности преобразователей из одного файла в другой.1213Поскольку модуль использует командные строки **/bin/sh**, требуется POSIX-совместимая оболочка для [`os.system()`](https://python-all.ru/3.1/library/os.html#os.system) и `os.popen()`.1415Модуль `pipes` определяет следующий класс:1617#### `class pipes.Template`1819Абстракция конвейера.2021Пример:2223```python24>>> import pipes25>>> t=pipes.Template()26>>> t.append('tr a-z A-Z', '--')27>>> f=t.open('/tmp/1', 'w')28>>> f.write('hello world')29>>> f.close()30>>> open('/tmp/1').read()31'HELLO WORLD'32```3334## 33.10.1. Объекты Template3536У объектов Template есть следующие методы:3738#### `Template.reset()`3940Восстанавливает шаблон конвейера в исходное состояние.4142#### `Template.clone()`4344Возвращает новый эквивалентный шаблон конвейера.4546#### `Template.debug(flag)`4748Если4950*flag*5152истинно, включить отладку. В противном случае выключить. Когда отладка включена, выводится список выполняемых команд, а оболочка получает команду5354`set -x`5556для более подробного вывода.5758#### `Template.append(cmd, kind)`5960Добавляет новое действие в конец. Переменная *cmd* должна быть корректной командой Bourne shell. Переменная *kind* состоит из двух букв.6162Первая буква может быть либо `'-'` (что означает, что команда читает свой стандартный ввод), `'f'` (что означает, что команда читает заданный файл из командной строки) или `'.'` (что означает, что команда не читает ввод, и следовательно должна быть первой).6364Аналогично, вторая буква может быть либо `'-'` (что означает, что команда пишет в стандартный вывод), `'f'` (что означает, что команда записывает файл в командной строке) или `'.'` (что означает, что команда ничего не записывает, и следовательно должна быть последней).6566#### `Template.prepend(cmd, kind)`6768Добавляет новое действие в начало. Описание аргументов см. в6970[`append()`](https://python-all.ru/3.1/library/pipes.html#pipes.Template.append)7172.7374#### `Template.open(file, mode)`7576Возвращает файлоподобный объект, открытый для7778*file*7980, но читаемый или записываемый конвейером. Обратите внимание, что можно указать только одно из значений:8182`'r'`8384,8586`'w'`8788.8990#### `Template.copy(infile, outfile)`9192Копирует9394*infile*9596в9798*outfile*99100через конвейер.101