Документация Python неофициальный перевод

pipes.md

71 строк · 4.3 КБ · обычная страница · сырой текст · скачать

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