Chiama programma esterno in Python

Manav Narula 30 gennaio 2023
  1. Usa la funzione os.system() per eseguire comandi di sistema esterni in Python
  2. Usa la funzione os.popen() per eseguire comandi di sistema esterni in Python
  3. Usa la funzione subprocess.Popen() per eseguire comandi di sistema esterni in Python
  4. Usa la funzione subprocess.call() per eseguire comandi di sistema esterni in Python
  5. Usa la funzione subprocess.run() per eseguire comandi di sistema esterni in Python
Chiama programma esterno 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.

Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

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

Articolo correlato - Python Process