pipes
— Інтерфейс до конвеєрів оболонки¶
Вихідний код: Lib/pipes.py
Застаріло з версії 3.11, буде видалено у версії 3.13: Модуль pipes
є застарілим (докладніше див. PEP 594). Натомість використовуйте модуль subprocess
.
Модуль pipes
визначає клас для абстрагування концепції конвеєра — послідовності конвертерів з одного файлу в інший.
Оскільки модуль використовує командні рядки /bin/sh, потрібна POSIX або сумісна оболонка для os.system()
і os.popen()
.
Availability: Unix, not 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. Змінна kind складається з двох літер.
Першою літерою може бути
'-'
(що означає, що команда читає стандартний ввід),'f'
(що означає, що команда читає заданий файл у командному рядку) або' .''
(це означає, що команди не читають введених даних, а отже, мають бути першими.)Подібним чином друга літера може мати значення
'-'
(що означає, що команда записує в стандартний вивід),'f'
(що означає, що команда записує файл у командний рядок) або'.'
(що означає, що команда нічого не записує, тому має бути останньою.)
- Template.prepend(cmd, kind)¶
Додайте нову дію на початку. Перегляньте
append()
для пояснення аргументів.
- Template.open(file, mode)¶
Повертає файлоподібний об’єкт, відкритий у file, але зчитований або записаний конвеєром. Зауважте, що можна вказати лише одне з
'r'
,'w'
.
- Template.copy(infile, outfile)¶
Скопіюйте infile до outfile через канал.