# Comment effectuer un check 'strict' ligne par ligne en python

**URL:** <https://www.debian-fr.org/t/comment-effectuer-un-check-strict-ligne-par-ligne-en-python/78850>\
**Category:** Programmation\
**Created:** [Mars 20, 2019, 2:21 UTC](https://www.debian-fr.org/t/comment-effectuer-un-check-strict-ligne-par-ligne-en-python/78850 "2019-03-20T14:21:56Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Mars 20, 2019, 2:21 UTC](https://www.debian-fr.org/t/comment-effectuer-un-check-strict-ligne-par-ligne-en-python/78850/1 "2019-03-20T14:21:56Z")

</div>

Actuellement j’ai un script long comme ma … 🤣

Qui me sert à effectuer la découverte des containers et me remonter un tas d’information utiles pour le monitoring.

Je but sur un truc tout con à mon avis 😕

```auto
# prod / preprod container state
def prod(args):
    with open("/etc/zabbix/scripts/prod_container-list.txt", "r") as file:
        for line in file:
            line = line.rstrip() # remove '\n' at end of line
            if args.container == line:
                print("0")
            else:
                print("1")

```

En effet il arrive que lors d’essai des containers soit lancé et supprimé à la volée, il est donc inutile de remontée des alertes. de monitoring pour ceci, je pensé utilisé une liste de nom de container afin de ne placé des triggers que sur les containers en production.

Hors je me retrouve avec non pas un trigger à 1 ou à 0 mais des triggers qui lors d’un changement d’états accumule les 1 et les 0.

---

<div class="post-metadata">

**Author:** ![dindoun](https://www.debian-fr.org/user_avatar/www.debian-fr.org/dindoun/32/4281_2.png) [@dindoun](https://www.debian-fr.org/u/dindoun)\
**Post date:** [Mars 20, 2019, 2:56 UTC](https://www.debian-fr.org/t/comment-effectuer-un-check-strict-ligne-par-ligne-en-python/78850/2 "2019-03-20T14:56:05Z")

</div>

salut  
je comprends pas trop ; le programme que tu monitores est zappix?  
En tout cas il manque peut être / devant etc  
et le rstrip enlève les espaces, pas les \n

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Mars 20, 2019, 3:04 UTC](https://www.debian-fr.org/t/comment-effectuer-un-check-strict-ligne-par-ligne-en-python/78850/3 "2019-03-20T15:04:57Z")

</div>

Effectivement bien vu durant mes différents essai j’ai fais une coquille sur le path de la liste.

non le script permet à Zabbix via agent et un outils d’effectuer un _send_ vers un proxy lui même connecté au serveur principal.

Pour les espaces je me suis mal exprimé effectivement je vire les espaces potentiel en fin de ligne.

Dans les grandes lignes je cherche à effectuer un _check strict_ sur le nom du container dans un fichier afin de m’assurer que oui ou non les alertes sont à transmettre.

J’avais auparavant des faux positifs si jamais le nom d’un container était contenu dans un autre nom 😕

---

<div class="post-metadata">

**Author:** ![ed](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ed/32/5886_2.png) [@ed](https://www.debian-fr.org/u/ed)\
**Post date:** [Mars 20, 2019, 10:22 UTC](https://www.debian-fr.org/t/comment-effectuer-un-check-strict-ligne-par-ligne-en-python/78850/4 "2019-03-20T22:22:36Z")

</div>

donne nous le contenu de prod\_container-list.txt et la valeur de args.container 😉

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Mars 21, 2019, 10:56 UTC](https://www.debian-fr.org/t/comment-effectuer-un-check-strict-ligne-par-ligne-en-python/78850/5 "2019-03-21T10:56:48Z")

</div>

Bon j’ai palier à mon souci autrement, grosso modo == me renvoie 1 si il trouve le nom du container contenu dans args.container dans la liste au format txt.

J’avais pas véritablement besoin d’avoir un état 1 ou 0 finalement, du coup j’ai vié les print().
