Je traite un projet qui consiste à analyser un fichier texte, et je ne cherche à afficher que les données dont j'ai besoin du texte d'origine.
Voici ce que ca donne:
Je recherche à ajouter deux condition à ce programme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 # -*- coding: cp1252 -*- infile="C:\\Documents and Settings\\All Users\\bru-11-r6.car.belbone.rtf" # Varialble infile qui contient le nom du fichier d'entrée listeAAfficher=[''] # Liste qui permet de stocker le paragraphe à afficher affiche=False for l in file(infile): # Ouverture du fichier, fonction équivalente à open(file), la fermeture se fait automatiquement. lg=l.strip().split() if 'interface' in lg: # Récupère le premier mot choisis: ici 'Interface'. 'l' représente le mot en question. affiche=False # Ne reconnait pas le motif que je souhaite afficher => Affiche = False for element in listeAAfficher: if l.lower().find(element) != -1 : # Lower renvoit la chaine en minuscules affiche=True if 'description' in lg: if lg[1][0] not in ['3','9','0']: affiche=False if affiche: print l.rstrip('\n,\par,}') # Enlève les caractères non désirables. pour éviter les sauts de ligne
1 - Qu'il n'affiche que les lignes qui comment par soit: 'interface' ou'description' ou 'ip adress', sinon ce n'est pas la peine.
2- Je souhaite aussi que lorsque le programme trouve une ligne dont les condition sur la ligne description ne sont pas respectés, ainsi qu'à l'absence dune ligne avecc 'ip adress', la ligne interface ne s'affiche pas. Car comme vous l'avez peut etre remarqué, ce fichier texte cntient plusieurs lignes interfaces, dont chacune d'entre elles contient des données différentes.
Voici un exemple du fichier en question:
Je pense que ce soit un problème assez facile, mais je début encore dans python. Svp j'ai besoin de la réponse rapidement. Merci d'avance
interface TenGigabitEthernet3/4
description 901064766 cbu-pcbru16-skynet-tge34-car.belbone.be
ip address 80.84.20.206 255.255.255.252
interface ATM4/0/0
description 900867919 cbu-pcbru16-atm01str11-ATM400-car.belbone.be -= BRU/11-STR02DC2 A155M 301 I =-
bandwidth 155000
interface ATM4/0/0.40 point-to-point
description cbu-pcbru16-unused-car.belbone.be previous thermote TVH
bandwidth 4096
interface ATM4/0/0.182 point-to-point
description 900000027 cbu-pcbru16-idnet-ATM400c182-car.belbone.be
bandwidth 15000
ip address 80.84.20.106 255.255.255.252
interface ATM4/0/1
description FREE ATM STM1
interface Serial4/1/0
description FREE (was 3239828 cbu-pcbru16-pecusa11-s510-car.belbone.be BRU/11-NYK/111_672N9002)
interface Serial4/1/1
description 003239861 cbu-bru-11-r6-s4/1/1-hngk-mga-r2-s4/0-car.belbone.be
ip address 80.84.18.174 255.255.255.254
interface Serial4/1/2
description FREE T3
interface Serial4/1/3
description FREE T3
interface POS4/3/0
description FREE old 003511809 cbu-pcbru16-pecbru210-pos430-car.belbone.be
ip address 80.84.18.121 255.255.255.254
interface POS4/3/1
interface GigabitEthernet5/1
description 901137233 bru-11-r6-bru-11-r14-g-5-1
ip address 80.84.18.34 255.255.255.254
interface GigabitEthernet5/2
description FREE port unavailable
interface GigabitEthernet6/1
description 3239808 bru-11-r6-bru-22-r15-g-6-1
ip address 80.84.18.42 255.255.255.254
Partager