pipes
— Интерфейс к трубопроводам shell¶
Исходный код: Lib/pipes.py
Утратил актуальность с версии 3.11, будет удален в версии 3.13: Модуль pipes
устарел (подробнее см. в разделе PEP 594). Пожалуйста, используйте вместо него модуль subprocess
.
Модуль pipes
определяет класс для абстрагирования концепции конвейера - последовательности преобразований из одного файла в другой.
Поскольку модуль использует /bin/sh командных строк, требуется POSIX или совместимая оболочка для os.system()
и os.popen()
.
Availability: 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.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 по каналу.