pipes
— Interfaz para tuberías de shell¶
Código fuente: Lib/pipes.py
Obsoleto desde la versión 3.11, se eliminará en la versión 3.13: El módulo pipes
está obsoleto (para más detalles ver PEP 594. Por favor, utilice el módulo subprocess
en su lugar.
El módulo pipes
define una clase para abstraer el concepto de una tubería — una secuencia de conversores de un archivo a otro.
Debido a que el módulo utiliza líneas de comando /bin/sh, se requiere una interfaz POSIX o un shell compatible para ejecutar os.system()
y os.popen()
.
Disponibilidad: Unix. No disponible en VxWorks.
El módulo pipes
define la siguiente clase:
- class pipes.Template¶
Una abstracción de una tubería.
Ejemplo:
>>> 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'
Objetos Template¶
Las instancias Template tienen los siguientes métodos:
- Template.reset()¶
Recupera el estado inicial del Template de una tubería.
- Template.clone()¶
Retorna una nueva y equivalente instancia del Template de una tubería.
- Template.debug(flag)¶
Si flag es verdadero, activa la depuración. Si no, la depuración no se activa. Cuando la depuración está activada, los comandos a ejecutar son impresos, y se le añade el comando
set -x
a la shell para ser más verboso.
- Template.append(cmd, kind)¶
Añade una nueva acción al final. La variable cmd tiene que ser un comando válido de Bourne Shell. La variable kind está formada por dos letras.
La primera letra puede ser tanto
'-'
(que significa que el comando lee su entrada de datos estándar),'f'
(que significa que el comando lee un fichero desde línea de comandos) o'.'
(que significa que el comando no lee ninguna entrada de datos, y por tanto tiene que ser el primero.)De manera parecida, la segunda letra puede ser tanto
'-'
(que significa que el comando escribe a la salida de datos estándar),'f'
(que significa que el comando escribirá a un fichero de la línea de comandos) o'.'
(que significa que el comando no escribe nada, por lo que debe ser el primero)
- Template.prepend(cmd, kind)¶
Añade una nueva acción al principio. Ver
append()
para la explicación de los argumentos.
- Template.open(file, mode)¶
Retorna un objeto similar a un fichero, abierto a file, pero leído o escrito por la tubería. Destacar que solo una de
'r'
o'w'
puede ser añadida.
- Template.copy(infile, outfile)¶
Copia infile a outfile a través de la tubería.