GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguire un comando Shell con Python

Python è uno dei linguaggi di programmazione popolari là fuori. Se stai usando Linux, impararlo ti aiuta ad automatizzare flussi di lavoro e script.

L'utilità di Python deriva dalla sua facilità d'uso e dalla sua libreria standard. Con esso, puoi eseguire correttamente i comandi della shell, e questo è l'argomento del nostro tutorial di oggi.

Nella maggior parte dei casi, potresti aver usato un file bash o batch per eseguire i tuoi comandi, ma sarai in grado di farlo anche in Python. Ti guideremo su come eseguire il comando shell con Python.

Esecuzione dei comandi Shell con Python

1. Modulo OS

Uno dei modi più semplici e sicuri per eseguire il comando della shell tramite Python è usare os.system().

Salviamo il nostro file Python come usingos.py .

Di seguito è riportato il codice di cui hai bisogno per utilizzarlo all'interno dei tuoi dati.

import os
os.system('ls')

Nel file Python, importiamo prima il modulo os e poi chiamiamo system method() per passare il comando che vuoi eseguire. Come puoi vedere, abbiamo eseguito il comando "ls" al suo interno. Se esegui il file python, otterrai il seguente output.

python usingos.py

Tuttavia, l'utilizzo del modulo os è molto limitato. Prima di tutto, non sarai in grado di salvare l'output in una variabile.

Per salvare l'output, è necessario utilizzare una funzione diversa con il modulo os. È pop(). Apre semplicemente una pipe da e verso una riga di comando. In questo modo, è possibile accedere al flusso Python e quindi i valori possono essere archiviati in una variabile.

Salviamo il nostro nuovo script Python come savingvalue.py

Al suo interno, devi digitare il seguente codice.

import os
stream = os.popen('eThe value is now returned')
output = stream.read()
print (output)

2. Modulo sottoprocesso

Infine, daremo un'occhiata al modulo del sottoprocesso. Se sei seriamente intenzionato a eseguire i comandi della shell usando Python, dovresti usare il metodo subprocess. È necessaria la versione di Python 3.5 o successiva per utilizzare il modulo sottoprocesso.

Ma perché dovresti farlo? È perché il sottoprocesso ha caratteristiche eccellenti che funzionano bene quando si lavora con i comandi della shell in Python. Ad esempio, sarai in grado di memorizzare i risultati in variabili e anche avviare un nuovo processo senza provare a reinventare la ruota.

Diamo un'occhiata a un esempio per capire meglio. Nominiamo il nostro file per questo esempio come subproc.py.

Al suo interno, devi utilizzare il seguente codice.

import subprocess
list_file_names = subprocess.run(['ls'])
print ("Here are the files %d" %list_file_names.returncode)

La prima riga del codice importa il modulo del sottoprocesso. Una volta terminato, ora creiamo una nuova variabile denominata "list_file_names" e quindi utilizziamo la funzione subprocess.run(). Prende input in un elenco. Come puoi vedere, abbiamo inserito un comando Linux, ls che elenca file e cartelle.

Infine, stampiamo la variabile con un codice di ritorno.

Per passare un argomento al comando, devi passare l'argomento come un altro elemento nell'elenco. Quindi, se vuoi passare l'argomento "-l" a "ls", l'elenco sarà il seguente:

["ls","-l"]

Conclusione

Ci porta al completamento del nostro tutorial su come eseguire il comando Shell con Python usando os e sottoprocesso moduli. Mentre il sistema operativo module è più una soluzione semplice per eseguire una shell comando, il sottoprocesso modulo ha funzionalità più potenti per attivare nuovi processi ed estrarre l'output. In quali altri modi usi Python? Condividi i tuoi trucchi con i nostri lettori nei commenti qui sotto.


Linux
  1. Come eseguire un comando in Shell senza salvarlo nella cronologia? [Suggerimenti per Linux]

  2. Eseguire il comando Nohup con l'input?

  3. Come utilizzare l'esportazione con Python su Linux

  4. Come eseguire il file python in linux

  5. Come eseguire il comando bash con privilegi sudo in Java?

Come monitorare il sistema Linux con il comando Sguardi

Come creare backup con il comando tar in Linux

Come eseguire il comando / script della shell di Linux in background

Come eseguire i comandi della shell tramite il server HTTP

Come eseguire un comando in uno script della shell?

Come installare Python 2.7 su CentOS 7.1 o 6.7 con Anaconda