TUTOS.EU

Rechercher une série de mots dans un fichier en python

L'idée ici est d'avoir une série de mots à chercher dans un fichier.
La série de mots est dans un fichier nommé fichiersource situé dans le même répertoire que le script.
Les mots sont ici recherchés dans un fichier /etc/haproxy/haproxy.cfg

Mon besoin était de valider qu'une série de sites étaient bien déclarés sur un haproxy.

import os

chemin_script = os.path.abspath(__file__) # Obtenir le chemin absolu du script actuel
repertoire_script = os.path.dirname(chemin_script) # Obtenir le répertoire du script

nom_du_script = os.path.basename(__file__) # Obtenir le nom du script
nom_du_script_sans_extension = os.path.splitext(nom_du_script)[0] # Retirer l'éventuel ".py" à la fin

chemin_fichier_sites = repertoire_script + "/fichiersource"
chemin_fichier_dans_lequel_chercher = "/etc/haproxy/haproxy.cfg"

def recherchesite(chemin_fichier_dans_lequel_chercher, unmot):
    try:
        with open(chemin_fichier_dans_lequel_chercher, 'r') as fichierha:
            vartrouve = 0
            for ligneha in fichierha:
                if unmot in ligneha:
                    print(f"{unmot}\ttrouvé.")
                    vartrouve = 1
                    break

            if  vartrouve == 0:
                print(f"{unmot}\tnon trouvé.")

    except FileNotFoundError:
        print(f"Le fichier {chemin_fichier_dans_lequel_chercher} n'a pas été trouvé.")
        return None
    except Exception as e:
        print(f"Une erreur s'est produite : {e}")
        return None

try:
    # Analyser chaque ligne du fichier des sites
    with open(chemin_fichier_sites, 'r') as monfichier:
        for lignesite in monfichier:
            #print(lignesite.rstrip()) #La fonction rstrip est utilisée pour ne pas afficher les sauts de ligne
            unmot = lignesite.rstrip()
            recherchesite(chemin_fichier_dans_lequel_chercher, unmot)

except FileNotFoundError:
    print(f"Le fichier {chemin_fichier_sites} n'a pas été trouvé.")
except Exception as e:
    print(f"Une erreur s'est produite : {e}")
Lien vers le fichier : cliquez ici Copier le code

Article(s) en relation(s)

2