Recherche de site Web

Module d’exploitation Python


Introduction

Python est un langage de script puissant. Alors, pourquoi ne pas l’utiliser pour scripter Linux ? Le module os est la réponse de Python à la gestion de nombreuses opérations sur les fichiers Linux.

Le module os permet à Python d’effectuer de nombreuses opérations sur les fichiers et les dossiers que vous effectueriez généralement dans la ligne de commande Linux. Il vous permet de commencer à remplacer Bash par Python, ce qui rend l’expérience de script beaucoup plus propre et plus conviviale.

Chargement du système d’exploitation

Le module os est un module Python comme les autres. Dans n’importe quel script où vous souhaitez l’utiliser, vous pouvez utiliser une instruction import pour l’extraire.

import os

getcwd()

La méthode getcwd() renvoie le répertoire de travail courant sous la forme d’une chaîne. Vous n’avez pas besoin de lui passer quoi que ce soit. C’est à peu près l’équivalent de pwd.

print(os.getcwd())

chdir()

chdir() est l’équivalent Python de cd. Appelez la méthode et passez-lui le répertoire que vous souhaitez modifier sous forme de chaîne.

os.chdir('/home/user/Documents')

Il prend également en charge l’utilisation de chemins relatifs, tout comme cd.

os.chdir('../Downloads')

listdir()

L’utilisation de listdir() est très similaire à l’exécution de ls dans Bash. Il y a cependant une grande différence, la valeur de retour.

Au lieu d’imprimer le contenu du répertoire, vous le recevez en retour sous forme de liste.


download_list = os.listdir('Downloads')
print(download_list)

Encore une fois, vous pouvez spécifier le répertoire, ou il listera le contenu du répertoire actuel.

mkdir() et makedirs()

Ces deux-là sont exactement ce que vous attendez d’eux. mkdir() fonctionne de manière très similaire à la commande Linux que vous connaissez. Dans ce cas, il peut utiliser un deuxième paramètre pour spécifier les autorisations.

os.mkdir('testdir', 755)

La méthode makedirs() fonctionne de la même manière, mais peut créer des répertoires de manière récursive les uns dans les autres, éliminant ainsi le besoin d’exécuter mkdir() plusieurs fois.

os.makedirs('testdir2/something/somethingelse', 755)

Encore une fois, vous pouvez spécifier les autorisations, si vous le souhaitez.

chmod()

Il s’agit encore une fois d’un équivalent simple de son homologue traditionnel. chmod() pour Python prend deux arguments. Le premier est le répertoire à modifier, et le second est les autorisations à modifier.

os.chmod('test', 774)

chown()

Vous pouvez également changer de propriétaire avec Python. chown() est la façon dont vous le faites. La méthode est très similaire à la commande Linux, mais elle nécessite des identifiants d’utilisateur et de groupe pour fonctionner.

os.chown('test', 1000, 1000)

Cette commande changera la propriété du répertoire « test » en l’utilisateur avec un id de 1000 et le groupe avec un id de 1000.

remove() et removedirs()

remove() supprime un seul fichier qu’il a passé. Vous pouvez également lui transmettre le chemin d’accès complet au fichier.

os.remove('/home/user/Downloads/somefile')

Pour supprimer des répertoires, utilisez la méthode removedirs(). Il supprimera le répertoire spécifié et tout son contenu.

os.removedirs('test_dir')

system()

Ainsi, la dernière méthode ici est la plus puissante et aussi la plus dangereuse. La méthode system() est de la triche. Il vous permet d’exécuter n’importe quelle commande système Linux que vous lui transmettez.

Il y a quelques préoccupations ici. Tout d’abord, pour exécuter la méthode, Python ouvre sa propre console. Trop utiliser system() est inefficace et peut monopoliser les ressources. Plus important encore, system() peut exécuter n’importe quoi. Cela signifie qu’il peut faire de sérieux dégâts. Si vous allez utiliser system(), utilisez-le avec parcimonie et dans des circonstances contrôlées.

Essayez d’exécuter une commande via system().

print(os.system(ls -lah))

Vous pouvez également faire preuve de créativité et même assembler des commandes comme vous le feriez dans un terminal normal.

print(os.system(ps aux | grep firefox))

Si Firefox est en cours d’exécution, la commande trouvera le processus et affichera des informations à son sujet.

Réflexions finales

Vous avez fait le premier pas vers la création de scripts pour votre système Linux avec Python. Il y a plus d’outils que Python offre, et les choses se compliquent beaucoup dans cet espace. Les outils d’automatisation populaires comme Ansible et Salt sont conçus avec Python, il n’y a donc vraiment pas de limite à ce qu’il peut faire.

Exercices

  1. Imprimez votre répertoire actuel à l’aide de Python.
  2. Passez à un autre répertoire et imprimez-le.
  3. Créez une boucle qui itère sur le contenu d’un répertoire et imprime chacun d’eux individuellement.
  4. Créez un nouveau répertoire avec un répertoire à l’intérieur et un autre un pas plus bas.
  5. Modifiez les autorisations de votre nouveau répertoire afin que le propriétaire puisse lire, écrire et exécuter, et que tous les autres puissent uniquement lire et exécuter.
  6. Supprimez les deux sous-répertoires.
  7. Utilisez Python pour créer un fichier texte qui répertorie tous les processus que votre utilisateur exécute actuellement.

Articles connexes: