Chiama programma esterno in Python
-
Usa la funzione
os.system()
per eseguire comandi di sistema esterni in Python -
Usa la funzione
os.popen()
per eseguire comandi di sistema esterni in Python -
Usa la funzione
subprocess.Popen()
per eseguire comandi di sistema esterni in Python -
Usa la funzione
subprocess.call()
per eseguire comandi di sistema esterni in Python -
Usa la funzione
subprocess.run()
per eseguire comandi di sistema esterni in Python
In Python, abbiamo diversi moduli e funzioni disponibili per comunicare e ottenere risposte dal sistema operativo. Python ha anche metodi che possono eseguire programmi esterni.
In questo tutorial, discuteremo come chiamare un programma esterno in Python.
Usa la funzione os.system()
per eseguire comandi di sistema esterni in Python
Il modulo os
in Python può interagire con il sistema operativo del dispositivo e ha funzioni disponibili per eseguire i comandi della shell. La funzione system()
implementa un comando, passato ad essa come una stringa, in una subshell. Restituisce lo stato di uscita della shell, che il sistema operativo restituisce dopo aver eseguito il comando dato. Consente di eseguire più comandi contemporaneamente e di chiamare programmi esterni, non comandi di shell.
Per esempio,
import os
os.system("echo Hello World")
Usa la funzione os.popen()
per eseguire comandi di sistema esterni in Python
Un’altra funzione del modulo os
per eseguire comandi di programmi esterni è la funzione popen()
. Questo metodo apre una pipe relativa al comando. È simile alla funzione os.system()
, ma fornisce un oggetto di tipo file che aiuta con le operazioni di input-output relative al comando. Possiamo specificare la modalità file per il file e la dimensione del buff come parametro nella funzione.
Per esempio,
import os
os.popen("echo Hello World")
Nota che ci sono 4 tipi di funzione popen()
disponibili in Python 2. La differenza tra loro è con l’output di queste 4 funzioni.
Usa la funzione subprocess.Popen()
per eseguire comandi di sistema esterni in Python
Il modulo subprocess
è simile al modulo os
e ha funzioni e metodi migliorati per chiamare programmi esterni. Il Popen
è una classe e non un metodo. È un po’ complicato da usare a causa di vari parametri che devono essere specificati insieme al comando richiesto. Combina tutte le 4 funzioni os.popen()
in una sola. Inoltre esegue il programma esterno come processo separato. Il codice seguente mostra come usarlo.
import subprocess
subprocess.Popen("echo Hello World", shell=True, stdout=subprocess.PIPE).stdout.read()
Usa la funzione subprocess.call()
per eseguire comandi di sistema esterni in Python
La funzione call()
è un miglioramento della funzione popen()
. Tuttavia, a differenza della funzione popen()
, attende che il comando venga eseguito prima di fornire il codice di ritorno. Passiamo il comando come argomento alla funzione.
Per esempio,
import subprocess
subprocess.call("echo Hello World", shell=True)
Usa la funzione subprocess.run()
per eseguire comandi di sistema esterni in Python
In Python v3.5 e versioni successive, la funzione run()
è usata più spesso per eseguire i comandi del programma. Restituisce un oggetto di processo completato dopo aver eseguito il comando, passato alla funzione come parametro.
Per esempio,
import subprocess
print(subprocess.run("echo Hello World", shell=True))
Nota che il modulo subprocess
è preferito al modulo os
per eseguire comandi esterni in Python.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn