5 minutos o menos: Ejecución de procesos con Subprocess

Hola amigos de Inetrnet. Mi nombre es Luis, y les doy la bienvenida a Mi Diario Python.


En el articulo de hoy veremos como podemos invocar procesos desde Python, utilizando la librería subprocess.


Sin más preámbulos, comencemos.


“5 minutos o menos”, es una sección del blog, en la cual te enseño algo sobre Python, y que no duraras mucho en leer.

 

Iniciar procesos con Subprocess

Para iniciar o ejecutar un proceso, lo único que debemos hacer es llamar al método run de subprocess. Veamos un ejemplo. Ejecutemos el comando: python --version desde el interprete de Python.
>>> import subprocess
>>> subrocess.run(["python", "--version"])
Python 3.6.4
CompletedProcess(args=['python', '--version'], returncode=0)
Como pueden observar, los argumentos los pasamos como una lista. En vez de escribir “python --version”, escribimos [“python”, “–version”].
Índice

    Shell

    Si intentaste ejecutar un comando como cd o mkdir, y no lo lograste, es porque para ejecutar este tipo de comando es necesario asignar el valor True al parámetro shell.
    >>> subprocess.run(["mkdir", "Carpeta de Codigos"], shell=True)
    CompletedProcess(args=['mkdir', 'Carpeta de Codigos'], returncode=0)
    

    cwd

    El parámetro cwd, indica la ubicación en la cual se ejecutara el comando.
    >>> subprocess.run(["mkdir", "Otra carpeta"], shell=True, cwd="./Carpeta de Códigos")
    CompletedProcess(args=['mkdir', 'Otra carpeta'], returncode=0)
    
    De esta manera, creamos una carpeta llamada Otra carpetadentro de Carpeta de Códigos.
    Muy interesante ¿No lo crees?.
    Sin más nada que decir. Mi nombre es Luis, y fue un placer compartir mis conocimientos con todos ustedes :D.
    1. ra dice:

      Genial, muy claro.

      1. Luis Salcedo dice:

        Hola. Muchas gracias, saludos.

    2. ra dice:

      Que valores se le puede asignar a returncode?

    3. Anónimo dice:

      Creo que no existe subprocess.run? es subprocess.call, no?

    4. Anónimo dice:

      Perdón, sí existe en python 3.x, yo estaba probando en 2.7

      1. Luis Salcedo dice:

        Hola. Sí, creo que debí mencionar ese detalle. Saludos :D.

    5. Unknown dice:

      Gracias!

      1. Luis Salcedo dice:

        Gracias por visitar el blog Leonor. Saludos.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Te has suscrito correctamente al boletín

    Se produjo un error al intentar enviar tu solicitud. Inténtalo de nuevo.

    Mi Diario Python will use the information you provide on this form to be in touch with you and to provide updates and marketing.