pipes.md
1> **Источник:** https://python-all.ru/3.0/library/pipes.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `pipes` – Интерфейс к конвейерам командной оболочки89*Платформы:* Unix1011Модуль `pipes` определяет класс, абстрагирующий понятие *конвейера* – последовательности преобразователей из одного файла в другой.1213Поскольку модуль использует командные строки **/bin/sh**, требуется POSIX-совместимая оболочка для [`os.system()`](https://python-all.ru/3.0/library/os.html#os.system) и `os.popen()`.1415Модуль `pipes` определяет следующий класс:1617#### `[pipes.Template]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## Объекты Template3536У объектов Template есть следующие методы:3738#### `[pipes.Template.reset]Template.reset()`3940Восстанавливает шаблон конвейера в исходное состояние.4142#### `[pipes.Template.clone]Template.clone()`4344Возвращает новый эквивалентный шаблон конвейера.4546#### `[pipes.Template.debug]Template.debug(flag)`4748Если4950*flag*5152истинно, включить отладку. В противном случае выключить. Когда отладка включена, выводится список выполняемых команд, а оболочка получает команду5354`set -x`5556для более подробного вывода.5758#### `[pipes.Template.append]Template.append(cmd, kind)`5960Добавляет новое действие в конец. Переменная *cmd* должна быть корректной командой Bourne shell. Переменная *kind* состоит из двух букв.6162Первая буква может быть либо `'-'` (что означает, что команда читает свой стандартный ввод), `'f'` (что означает, что команда читает заданный файл из командной строки) или `'.'` (что означает, что команда не читает ввод, и следовательно должна быть первой).6364Аналогично, вторая буква может быть либо `'-'` (что означает, что команда пишет в стандартный вывод), `'f'` (что означает, что команда записывает файл в командной строке) или `'.'` (что означает, что команда ничего не записывает, и следовательно должна быть последней).6566#### `[pipes.Template.prepend]Template.prepend(cmd, kind)`6768Добавляет новое действие в начало. Описание аргументов см. в6970[`append()`](https://python-all.ru/3.0/library/pipes.html#pipes.Template.append)7172.7374#### `[pipes.Template.open]Template.open(file, mode)`7576Возвращает файлоподобный объект, открытый для7778*file*7980, но читаемый или записываемый конвейером. Обратите внимание, что можно указать только одно из значений:8182`'r'`8384,8586`'w'`8788.8990#### `[pipes.Template.copy]Template.copy(infile, outfile)`9192Копирует9394*infile*9596в9798*outfile*99100через конвейер.101