pipes
— Интерфейс для конвейеров оболочки
- Модуль
pipes
определяет класс для абстракции концепции конвейеров - — последовательность конвертеров из одного файла в другой.
Поскольку модуль использует командные строки /bin/sh, требуется
POSIX или совместимая оболочка для os.system()
и os.popen()
.
Модуль 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 следующие методы:
-
Template.
reset
() Восстанавливает шаблон конвейера в исходное состояние.
-
Template.
clone
() Возвращает новый эквивалентный шаблон конвейера.
-
Template.
debug
(flag) Если значение flag равно истина, включает отладку. В противном случае отключает отладку. Когда отладка включена, печатаются выполняемые команды, и оболочке дается команда
set -x
, чтобы быть более подробной.
-
Template.
append
(cmd, kind) Добавляет новое действие в конце. Переменная cmd должна быть допустимой командой оболочки Борна. Переменная kind состоит из двух букв.
Первая буква может быть либо
'-'
(что означает, что команда читает свой стандартный ввод),'f'
(что означает, что команды считывают данный файл в командной строке), либо'.'
(что означает, что команды не считывают ввод и, следовательно, должны быть первыми).Точно так же вторая буква может быть
'-'
(что означает, что команда записывает в стандартный вывод),'f'
(что означает, что команда записывает файл в командной строке) или'.'
(что означает, что команда ничего не записывает и, следовательно, должна быть последним.)
-
Template.
prepend
(cmd, kind) Добавляет новое действие в начале. См.
append()
для объяснения аргументов.
-
Template.
open
(file, mode) Возвращает файлоподобный объект, открытый для file, но считываемый из конвейера или записываемый в него. Обратите внимание, что может быть задан только один из
'r'
,'w'
.
-
Template.
copy
(infile, outfile) Копирует infile в outfile через конвейер.