Back to Kbengine

:mod:`pipes` --- Interface to shell pipelines

kbe/src/lib/python/Doc/library/pipes.rst

2.5.122.5 KB
Original Source

:mod:pipes --- Interface to shell pipelines

.. module:: pipes :platform: Unix :synopsis: A Python interface to Unix shell pipelines.

.. sectionauthor:: Moshe Zadka [email protected]

Source code: :source:Lib/pipes.py


The :mod:pipes module defines a class to abstract the concept of a pipeline --- a sequence of converters from one file to another.

Because the module uses :program:/bin/sh command lines, a POSIX or compatible shell for :func:os.system and :func:os.popen is required.

The :mod:pipes module defines the following class:

.. class:: Template()

An abstraction of a pipeline.

Example::

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-objects:

Template Objects

Template objects following methods:

.. method:: Template.reset()

Restore a pipeline template to its initial state.

.. method:: Template.clone()

Return a new, equivalent, pipeline template.

.. method:: Template.debug(flag)

If flag is true, turn debugging on. Otherwise, turn debugging off. When debugging is on, commands to be executed are printed, and the shell is given set -x command to be more verbose.

.. method:: Template.append(cmd, kind)

Append a new action at the end. The cmd variable must be a valid bourne shell command. The kind variable consists of two letters.

The first letter can be either of '-' (which means the command reads its standard input), 'f' (which means the commands reads a given file on the command line) or '.' (which means the commands reads no input, and hence must be first.)

Similarly, the second letter can be either of '-' (which means the command writes to standard output), 'f' (which means the command writes a file on the command line) or '.' (which means the command does not write anything, and hence must be last.)

.. method:: Template.prepend(cmd, kind)

Add a new action at the beginning. See :meth:append for explanations of the arguments.

.. method:: Template.open(file, mode)

Return a file-like object, open to file, but read from or written to by the pipeline. Note that only one of 'r', 'w' may be given.

.. method:: Template.copy(infile, outfile)

Copy infile to outfile through the pipe.