Содержание страницы
pipes – Интерфейс к конвейерам оболочки¶pipes – Interface to shell pipelines
Исходный код: Lib/pipes.py
Устарело с версии 3.11, будет удалено в версии 3.13: Модуль pipes устарел
(см. PEP 594 для подробностей).
Вместо него используйте модуль subprocess.
Модуль pipes определяет класс, который абстрагирует понятие конвейера
– последовательности преобразователей из одного файла в другой.
Поскольку модуль использует командные строки /bin/sh, требуется POSIX-совместимая оболочка для os.system() и os.popen().
Доступность: Unix, не VxWorks.
Модуль 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 ¶Template Objects
У объектов Template есть следующие методы:
- Template.reset()¶
Восстанавливает шаблон конвейера в исходное состояние.
- Template.clone()¶
Возвращает новый эквивалентный шаблон конвейера.
- Template.debug(flag)¶
Если flag равен true, включить отладку. В противном случае выключить. Когда отладка включена, выводится список команд, которые будут выполнены, а оболочке передаётся команда
set -xдля более подробного вывода.
- Template.append(cmd, kind)¶
Добавляет новое действие в конец. Переменная cmd должна быть корректной командой Bourne shell. Переменная kind состоит из двух букв.
Первая буква может быть либо
'-'(команда читает свой стандартный ввод),'f'(команда читает указанный файл из командной строки) или'.'(команда не читает никаких данных, поэтому должна быть первой).Аналогично, вторая буква может быть либо
'-'(команда пишет в стандартный вывод),'f'(команда пишет в файл, указанный в командной строке) или'.'(команда ничего не пишет, поэтому должна быть последней).
- Template.prepend(cmd, kind)¶
Добавляет новое действие в начало. См.
append()для объяснения аргументов.
- Template.open(file, mode)¶
Возвращает файлоподобный объект, открытый для file, но данные читаются из конвейера или записываются в конвейер. Обратите внимание, что можно указать только одно из значений
'r','w'.
- Template.copy(infile, outfile)¶
Копирует infile в outfile через конвейер.