Python Glossary English

все Python 3до 3.13Удалено из стандартной библиотекипонятие

pipes

удалённые модули

Конвейеры команд оболочки и экранирование аргументов. Удалён в Python 3.13 — используйте subprocess и shlex.quote.

Синтаксис

import pipes  # до 3.13

pipes.Template собирал конвейер вида 'tr a-z A-Z | sort' и прогонял через него файл, а недокументированная pipes.quote() экранировала аргумент для оболочки — её и копировали из старых ответов чаще всего. Убран по PEP 594: subprocess делает то же надёжнее. Как переписать: pipes.quote меняется на shlex.quote один в один, собрать строку команды из списка помогает shlex.join(). Конвейер лучше вовсе не отдавать оболочке: subprocess.run([...], input=..., capture_output=True, text=True) запускает программу без shell и передаёт данные через stdin, а цепочку из нескольких программ связывают несколько вызовов subprocess.Popen с stdout=PIPE. Пакет standard-pipes на PyPI возвращает модуль.

Примеры

# Python 3.13+
try:
    import pipes
except ModuleNotFoundError as e:
    print(type(e).__name__)  # → ModuleNotFoundError
# Python 3.13+
import shlex, subprocess, sys
print(shlex.quote('my file.txt'))  # → 'my file.txt'
done = subprocess.run([sys.executable, '-c', 'print(input().upper())'],
                      input='hi', capture_output=True, text=True)
print(done.stdout.strip())  # → HI
import pipes
print(pipes.quote('my file.txt'))  # → 'my file.txt'

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности