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!
python subprocess popen
Commentami!