Loading ...

Eseguire comandi in Python con subprocess

Eseguire comandi in Python con subprocess

Python è uno di quei linguaggi per cui vale il detto "per eseguire un'operazione ci sono mille modi diversi".

In effetti, a volte, ci sono anche troppi modi diversi in Python.

Prendiamo il caso in cui vogliamo eseguire comandi da shell.

Abbiamo almeno due moduli a disposizione; noi vediamo l'uso di subprocess.

Ma anche usando questo modulo, abbiamo diversi modi per eseguire la stessa cosa (magari con risultati un pò diversi).

E noi, infatti, ne vediamo due.

Il primo prevede l'uso del metodo run:

import subprocess

res = subprocess.run(['apropos', '.'])
print(res)

Questo mostrerà tutto l'output in una sola volta.

Per iterare riga per riga usiamo invece Popen:

import subprocess
import io

proc = subprocess.Popen(['apropos', '-s', '1', '.'], stdout=subprocess.PIPE)
for line in io.TextIOWrapper(proc.stdout, encoding="utf-8"):
    print(line)

Ovviamente, se guardate il modulo subprocess, ci stanno anche altre modi.

Troppi....

Enjoy!