pipes
— Інтерфейс до конвеєрів оболонки¶
Вихідний код: Lib/pipes.py
Застаріло починаючи з версії 3.11: Модуль pipes
є застарілим (докладніше див. PEP 594). Натомість використовуйте модуль subprocess
.
Модуль 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.
reset
()¶ Відновлення шаблону конвеєра до початкового стану.
-
Template.
clone
()¶ Поверніть новий еквівалентний шаблон конвеєра.
-
Template.
debug
(flag)¶ Якщо flag має значення true, увімкніть налагодження. В іншому випадку вимкніть налагодження. Коли налагодження ввімкнено, команди, які потрібно виконати, друкуються, а оболонкі надається команда
set -x
, щоб бути більш детальною.
-
Template.
append
(cmd, kind)¶ Додайте нову дію в кінці. Змінна cmd має бути дійсною командою оболонки bourne. Змінна kind складається з двох літер.
Першою літерою може бути
'-'
(що означає, що команда читає стандартний ввід),'f'
(що означає, що команда читає заданий файл у командному рядку) або' .''
(це означає, що команди не читають введених даних, а отже, мають бути першими.)Подібним чином друга літера може мати значення
'-'
(що означає, що команда записує в стандартний вивід),'f'
(що означає, що команда записує файл у командний рядок) або'.'
(що означає, що команда нічого не записує, тому має бути останньою.)
-
Template.
prepend
(cmd, kind)¶ Додайте нову дію на початку. Перегляньте
append()
для пояснення аргументів.
-
Template.
open
(file, mode)¶ Повертає файлоподібний об’єкт, відкритий у file, але зчитований або записаний конвеєром. Зауважте, що можна вказати лише одне з
'r'
,'w'
.
-
Template.
copy
(infile, outfile)¶ Скопіюйте infile до outfile через канал.