Exécuter une commande sur chaque fichier d'un dossier en Python

Lakshay Kapoor 10 octobre 2023
  1. Utilisez l’invite de commande pour exécuter une commande sur chaque fichier présent dans un dossier en Python
  2. Utilisez le module os pour exécuter une commande sur chaque fichier d’un dossier en Python
  3. Utilisez le module pathlib pour exécuter une commande sur chaque fichier d’un dossier en Python
Exécuter une commande sur chaque fichier d'un dossier en Python

Il existe de nombreuses opérations intéressantes que nous pouvons effectuer sur des fichiers externes à l’aide de Python, comme extraire des variables spécifiques d’un fichier, extraire le texte écrit dans un fichier, etc. L’une de ces opérations consiste à exécuter une commande dans un fichier Python présent dans un dossier spécifique en utilisant Python.

Ce tutoriel montrera comment exécuter une commande sur chaque fichier présent dans un dossier à l’aide de Python.

Pour ce tutoriel, nous supposerons deux fichiers Python avec quelques instructions Python à exécuter et à stocker avec l’extension .py présente dans un dictionnaire testFolder.

Ces deux fichiers python sont :

  • sample1.py
print("Hello World")
  • sample2.py
print(1 + 1)

Maintenant, supposons que ces deux fichiers soient stockés dans un dossier appelé testFolder. Voyons quelques façons d’imprimer ces fichiers en Python.

Utilisez l’invite de commande pour exécuter une commande sur chaque fichier présent dans un dossier en Python

Pour exécuter chaque fichier présent dans un dossier à l’aide de la ligne de commande de l’ordinateur, nous devons mentionner le chemin du fichier. La commande qui doit être écrite dans l’invite de commande est la suivante :

python ../testFolder/sample1.py & python ../testFolder/sample2.py

Production:

Hello World
2

Utilisez le module os pour exécuter une commande sur chaque fichier d’un dossier en Python

Le module os de Python fait partie des modules utilitaires standard de Python. Ce module permet d’interagir avec le système d’exploitation de l’ordinateur en fournissant diverses fonctions et méthodes. Ce module entre principalement en jeu lorsque l’utilisateur souhaite interagir avec le système de fichiers de l’ordinateur.

Dans cette méthode, quelques méthodes sont utilisées à partir du module os. Les méthodes sont os.listdir, os.path.join et os.path.isfile.

La méthode os.listdir du module os permet d’obtenir une liste complète de tous les fichiers présents dans un répertoire. L’argument de cette méthode est le chemin du répertoire. Si aucun répertoire n’est mentionné dans l’argument, alors la liste de tous les fichiers présents dans le répertoire courant sera retournée par défaut.

La méthode os.path.join du module os est utilisée pour concaténer un ou plusieurs composants d’un chemin spécifique. Cela se fait par un séparateur également appelé séparateur de répertoire /.

La méthode os.path.isfile du module os permet de vérifier si le fichier est présent ou non dans le chemin spécifié. L’argument de cette méthode est toujours le chemin du fichier.

import os

directory_name = "random"

for file_name in os.listdir(directory_name):
    i = os.path.join(directory_name, file_name)
    if os.path.isfile(i):
        print(i)

Production:

Hello World
2

Utilisez le module pathlib pour exécuter une commande sur chaque fichier d’un dossier en Python

Le module pathlib de Python fait partie des modules utilitaires standard. Ce module aide à fournir des chemins de fichiers sous forme de classes et fournit une sémantique appropriée pour traiter les systèmes d’exploitation.

Dans cette méthode, la fonction path.glob() du module pathlib est utilisée, ce qui aide essentiellement à accéder à tous les fichiers du répertoire donné.

from pathlib import Path

directory_name = "random"

open_files = Path(directory_name).glob("*")
for file in open_files:
    print(file)

Production:

Hello World
2
Lakshay Kapoor avatar Lakshay Kapoor avatar

Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.

LinkedIn

Article connexe - Python Directory