Comment exécuter des commandes Unix dans votre programme Python

Unix est un système d'exploitation développé par Ken Thompson et Dennis Ritchie aux laboratoires AT & T Bell Labs vers 1969. Il existe de nombreuses commandes Unix intéressantes que nous pouvons utiliser pour effectuer différentes tâches. La question est de savoir si nous pouvons utiliser de telles commandes directement dans un programme Python. C'est ce que je vais vous montrer dans ce tutoriel.

La commande Unix ls répertorie tous les fichiers du répertoire. Si vous mettez ls Comme dans un script Python, voici ce que vous obtiendrez lorsque vous exécuterez le programme:

Traceback (appel le plus récent en dernier): fichier "test.py", ligne 1, dans  ls NameError: le nom 'ls' n'est pas défini

Cela montre que l'interprète Python traite ls en tant que variable et nécessite sa définition (c'est-à-dire initialisée) et ne la traite pas comme une commande Unix.

os.system ()

Une solution à ce problème consiste à utiliser os.system () de Python os module.

Comme mentionné dans la documentation, os.system ():

Exécute la commande (une chaîne) dans un sous-shell. Ceci est implémenté en appelant le système de fonctions Standard C (), et a les mêmes limites.

Donc, nous pouvons exécuter le ls commande en Python comme suit:

import os os.system ('ls')

Ceci renverra la liste des fichiers de votre répertoire actuel, où se trouve votre .py le programme est situé.

Prenons un autre exemple. Si vous voulez renvoyer la date et l'heure actuelles, vous pouvez utiliser la commande Unix rendez-vous amoureux comme suit:

import os os.system ('date')

Dans mon cas, voici ce que j'ai obtenu à la suite du script ci-dessus:

Mar 24 Mai 17:29:20 CEST 2016

appel()

Bien que os.system () fonctionne, il est déconseillé car il est considéré un peu vieux et obsolète. Une solution plus recommandée est Python sous-processus module call (args) une fonction. Comme mentionné dans la documentation sur cette fonction:

Exécutez la commande décrite par args. Attendez que la commande soit terminée, puis renvoyez l'attribut returncode.

Si nous voulons exécuter le ls Commande Unix en utilisant cette méthode, nous pouvons faire ce qui suit:

depuis l'appel d'importation du sous-processus ('ls')

Voyons comment nous pouvons retourner la date en utilisant le sous-processus module, mais rendons l'exemple plus intéressant.

importer le sous-processus time = subprocess.Popen ('date', stdout = sous-processus.PIPE, stderr = sous-processus.PIPE) sortie, err = time.communicate () print 'C'est', sortie

L’exemple ci-dessus peut être exécuté plus simplement en utilisant check_output (), comme suit:

import sous-processus time = subprocess.check_output ('date') affiche 'il est', heure

La sortie des scripts ci-dessus est:

Il est Mar 24 Mai 19:14:22 CEST 2016

Les exemples ci-dessus montrent la souplesse d’utilisation de différents sous-processus fonctions, et comment nous pouvons passer les résultats aux variables afin d'effectuer d'autres opérations.

Conclusion

Comme nous l'avons vu dans ce tutoriel, les commandes Unix peuvent être appelées et exécutées à l'aide du sous-processus module, qui offre une grande souplesse lors de l'utilisation de commandes Unix via ses différentes fonctions. Pour en savoir plus sur ce module et ses différentes fonctions, consultez la documentation Python..