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, dansls 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.
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
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.
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..